/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.09i
 */
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}})());;
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright (c) 2003 by This Font is designed by Ralph Oliver du Carrois. All
 * rights reserved.
 * 
 * Trademark:
 * Colaborate Light is a trademark of This Font is designed by Ralph Oliver du
 * Carrois.
 * 
 * Description:
 * Copyright (c) 2003 by This Font is designed by Ralph Oliver du Carrois. All
 * rights reserved.
 * 
 * Manufacturer:
 * This Font is designed by Ralph Oliver du Carrois
 */
Cufon.registerFont({"w":488,"face":{"font-family":"ColaborateLight","font-weight":400,"font-stretch":"normal","units-per-em":"1000","panose-1":"2 0 5 3 4 0 0 2 0 4","ascent":"800","descent":"-200","x-height":"11","bbox":"-26 -835 1001 209","underline-thickness":"50","underline-position":"-50","stemh":"54","stemv":"65","unicode-range":"U+0020-U+2122"},"glyphs":{" ":{"w":244},"\u00f0":{"d":"442,-283v0,148,-33,298,-206,298v-115,0,-191,-95,-191,-207v0,-124,63,-206,187,-206v58,0,114,41,142,100v0,-121,-33,-206,-110,-255r-86,58r-53,-31r79,-53v-27,-11,-59,-18,-93,-23r-26,-65v69,8,129,23,179,47r76,-52r52,31r-76,51v85,62,126,161,126,307xm365,-243v-14,-36,-50,-100,-131,-100v-91,0,-115,70,-115,151v0,94,47,151,116,151v84,0,130,-47,130,-202","w":487},"\u00dd":{"d":"546,-647r-225,356r0,291r-73,0r0,-287r-232,-360r83,0r189,292r181,-292r77,0xm376,-809r-118,117r-52,0r96,-117r74,0","w":562,"k":{"\u00d2":24,"\u00d3":24,"\u00c1":52,"\u00c2":52,"\u00d5":24,"\u00c3":52,"\u00c0":52,"\u00f8":24,"\u00e6":24,"\u00d8":24,"\u00c6":52,"\u00a2":24,"\u00f5":24,"\u00f6":24,"\u00f4":24,"\u00f2":24,"\u00f3":24,"\u00eb":24,"\u00ea":24,"\u00e8":24,"\u00e9":24,"\u00e7":24,"\u00e5":24,"\u00e3":24,"\u00e4":24,"\u00e2":24,"\u00e0":24,"\u00e1":24,"\u00d6":24,"\u00c7":24,"\u00c5":52,"\u00c4":52,"s":24,"q":24,"o":24,"g":24,"e":24,"d":24,"c":24,"a":24,"Q":24,"O":24,"J":52,"G":24,"C":24,"A":52,".":52,",":52}},"\u00fd":{"d":"446,-457r-191,530v-26,71,-57,107,-139,136r-21,-57v105,-25,91,-95,128,-171r-183,-438r70,0r146,363r124,-363r66,0xm340,-647r-118,117r-52,0r96,-117r74,0","w":486,"k":{"\u00c1":24,"\u00c2":24,"\u00c3":24,"\u00c0":24,"\u00f8":12,"\u00e6":12,"\u00c6":24,"\u00a2":12,"\u00f5":12,"\u00f6":12,"\u00f4":12,"\u00f2":12,"\u00f3":12,"\u00eb":12,"\u00ea":12,"\u00e8":12,"\u00e9":12,"\u00e7":12,"\u00e5":12,"\u00e3":12,"\u00e4":12,"\u00e2":12,"\u00e0":12,"\u00e1":12,"\u00c5":24,"\u00c4":24,"s":12,"q":12,"o":12,"g":12,"e":12,"d":12,"c":12,"a":12,"T":24,"J":52,"A":24,".":52,",":52}},"\u00bd":{"d":"666,0r-226,0r-15,-39v55,-48,189,-134,189,-201v0,-90,-112,-69,-166,-39r-14,-41v98,-40,229,-32,229,80v0,78,-118,154,-175,202r178,0r0,38xm539,-629r-362,629r-64,0r362,-629r64,0xm195,-313r-50,0r0,-284r-67,54r-15,-38r86,-66r46,0r0,334","w":738},"\u00bc":{"d":"633,-89r-53,0r0,89r-49,0r0,-89r-145,0r-16,-37r162,-208r48,0r0,208r53,0r0,37xm541,-629r-366,629r-60,0r363,-629r63,0xm196,-313r-49,0r0,-284r-68,54r-14,-38r85,-66r46,0r0,334xm531,-126r0,-154r-119,154r119,0","w":738},"\u00b9":{"d":"211,-313r-50,0r0,-284r-67,54r-15,-38r86,-66r46,0r0,334","w":332},"\u00be":{"d":"656,-89r-53,0r0,89r-49,0r0,-89r-145,0r-16,-37r162,-208r48,0r0,208r53,0r0,37xm568,-629r-363,629r-62,0r362,-629r63,0xm279,-404v0,107,-144,107,-233,82r15,-40v46,20,168,37,168,-42v0,-61,-49,-71,-115,-71r0,-35v61,0,106,-8,106,-60v0,-80,-106,-50,-152,-27r-15,-40v75,-35,217,-32,217,66v0,51,-37,73,-80,78v42,6,89,28,89,89xm554,-126r0,-154r-119,154r119,0","w":738},"\u00b3":{"d":"283,-404v0,107,-144,107,-233,82r14,-40v46,20,170,37,169,-42v0,-61,-50,-71,-116,-71r0,-35v61,0,107,-8,107,-60v0,-80,-107,-50,-153,-27r-14,-40v75,-36,217,-31,217,66v0,51,-38,73,-81,78v42,6,90,28,90,89","w":332},"\u00b2":{"d":"287,-317r-227,0r-14,-36v55,-48,188,-137,188,-204v0,-90,-111,-69,-165,-39r-14,-40v97,-41,229,-33,229,79v0,78,-119,154,-176,202r179,0r0,38","w":332},"\u00a6":{"d":"153,-359r-63,0r0,-234r63,0r0,234xm153,78r-63,0r0,-234r63,0r0,234","w":244},"\u00d7":{"d":"440,-74r-44,44r-151,-152r-152,152r-44,-44r152,-152r-152,-151r44,-44r152,152r151,-152r44,44r-152,151"},"!":{"d":"155,-170r-66,0r0,-477r66,0r0,477xm162,0r-80,0r0,-84r80,0r0,84","w":244},"\"":{"d":"282,-647r-8,217r-50,0r-8,-217r66,0xm145,-647r-8,217r-51,0r-8,-217r67,0","w":360},"#":{"d":"475,-396r-106,0r-27,153r94,0r0,52r-103,0r-33,191r-61,0r33,-191r-111,0r-33,191r-61,0r33,-191r-87,0r0,-52r97,0r26,-153r-84,0r0,-52r94,0r35,-199r61,0r-35,199r111,0r35,-199r61,0r-35,199r96,0r0,52xm308,-396r-111,0r-26,153r110,0"},"$":{"d":"437,-168v0,119,-74,168,-167,181r0,85r-59,0r0,-81v-58,0,-110,-14,-166,-29r25,-64v50,19,87,35,141,36r0,-267v-82,-31,-167,-67,-167,-182v0,-107,73,-156,167,-167r0,-90r59,0r0,88v43,2,93,10,140,26r-25,64v-33,-14,-63,-29,-115,-32r0,238v82,31,167,71,167,194xm212,-385r0,-212v-58,10,-94,44,-94,108v0,57,42,83,94,104xm363,-166v0,-64,-42,-94,-93,-117r0,235v48,-13,93,-46,93,-118"},"%":{"d":"684,-167v0,89,-17,178,-128,178v-110,0,-125,-89,-125,-178v0,-85,24,-171,126,-171v110,0,127,82,127,171xm583,-629r-363,629r-63,0r362,-629r64,0xm307,-487v0,89,-17,178,-128,178v-110,0,-125,-89,-125,-178v0,-85,24,-171,126,-171v110,0,127,82,127,171xm635,-167v0,-73,-6,-134,-78,-134v-68,0,-76,73,-76,134v0,74,7,141,75,141v72,0,79,-66,79,-141xm258,-487v0,-73,-6,-134,-78,-134v-68,0,-76,73,-76,134v0,74,7,141,75,141v72,0,79,-66,79,-141","w":738},"&":{"d":"442,0r-58,0r-14,-54v-26,38,-70,68,-125,68v-110,0,-199,-58,-199,-187v0,-76,30,-144,119,-187v-34,-26,-99,-60,-99,-135v0,-91,41,-166,159,-166v100,0,159,48,159,157v0,80,-58,125,-150,164v-72,31,-120,70,-120,165v0,62,35,138,135,138v46,0,90,-36,116,-78r0,-122r-103,0r0,-49r168,0v-2,91,1,220,12,286xm317,-505v0,-62,-20,-105,-94,-105v-66,0,-89,47,-89,114v0,56,54,88,81,109v48,-20,102,-50,102,-118"},"'":{"d":"155,-647r-8,217r-50,0r-8,-217r66,0","w":244},"(":{"d":"223,128r-60,0v-85,-147,-106,-232,-106,-382v0,-183,31,-267,101,-393r60,0v-71,131,-91,224,-91,393v0,139,15,234,96,382","w":275},")":{"d":"219,-254v0,150,-21,235,-106,382r-60,0v81,-148,96,-243,96,-382v0,-169,-20,-262,-91,-393r60,0v70,126,101,210,101,393","w":275},"*":{"d":"377,-494r-143,35r-1,6r93,119r-45,32r-80,-124r-7,0r-83,124r-45,-33r94,-118r-3,-6r-144,-36r19,-55r138,52r6,-5r-7,-145r56,0r-8,147r6,4r137,-52","w":390},"+":{"d":"452,-187r-177,0r0,187r-63,0r0,-187r-176,0r0,-55r176,0r0,-182r63,0r0,182r177,0r0,55"},",":{"d":"161,-75r-81,178r-52,0r56,-178r77,0","w":244},"-":{"d":"298,-214r-269,0r0,-58r269,0r0,58","w":327},".":{"d":"161,0r-78,0r0,-83r78,0r0,83","w":244,"k":{"y":62,"w":86,"v":62,"Y":62,"W":62,"V":62}},"\/":{"d":"264,-658r-213,668r-62,0r214,-668r61,0","w":254},"0":{"d":"450,-308v0,163,-23,323,-208,323v-183,0,-205,-162,-205,-323v0,-155,36,-311,206,-311v183,0,207,149,207,311xm375,-308v0,-139,-8,-255,-132,-255v-118,0,-131,137,-131,255v0,141,9,267,130,267v129,0,133,-133,133,-267"},"1":{"d":"325,1r-73,0r0,-528r-115,99r-25,-59r144,-120r69,0r0,608"},"2":{"d":"437,0r-375,0r-24,-61v92,-86,311,-253,311,-375v0,-164,-169,-145,-272,-82r-25,-63v74,-30,119,-39,174,-39v110,0,197,49,197,180v0,143,-195,295,-291,382r305,0r0,58"},"3":{"d":"413,-158v-2,194,-227,196,-378,149r25,-63v84,42,278,60,278,-87v0,-112,-81,-133,-191,-133r0,-54v102,0,176,-17,176,-114v0,-149,-168,-108,-252,-60r-25,-63v129,-64,352,-56,352,121v0,92,-63,133,-134,142v70,11,149,52,149,162"},"4":{"d":"467,-168r-96,0r0,168r-73,0r0,-168r-242,0r-26,-60r269,-379r72,0r0,383r96,0r0,56xm298,-224r0,-296r-208,296r208,0"},"5":{"d":"438,-191v0,131,-87,206,-217,206v-61,0,-112,-4,-167,-22r24,-63v45,18,96,29,144,29v98,0,143,-59,143,-152v0,-92,-46,-139,-116,-139v-51,0,-92,22,-125,39r-55,-22r0,-292r344,0r0,56r-271,0r0,184v31,-8,59,-21,109,-21v121,0,187,73,187,197"},"6":{"d":"443,-192v0,112,-77,207,-192,207v-173,0,-206,-150,-206,-298v0,-160,72,-337,241,-337v37,0,85,6,126,17r-24,63v-33,-13,-59,-24,-97,-24v-114,0,-178,113,-178,266v28,-59,84,-100,142,-100v124,0,188,82,188,206xm368,-192v0,-81,-24,-151,-115,-151v-81,0,-117,64,-131,100v0,155,46,202,130,202v69,0,116,-57,116,-151"},"7":{"d":"425,-552r-228,552r-81,0r243,-550r-315,0r0,-57r355,0"},"8":{"d":"451,-148v0,137,-114,163,-210,163v-94,0,-204,-30,-204,-163v0,-89,58,-146,146,-172v-28,-13,-125,-48,-125,-143v0,-104,71,-157,188,-157v120,0,190,43,190,156v0,93,-97,137,-133,145v95,30,148,83,148,171xm364,-462v0,-74,-41,-103,-118,-103v-74,0,-117,30,-117,104v0,65,68,102,113,116v49,-11,122,-53,122,-117xm378,-149v0,-87,-74,-124,-134,-143v-62,19,-135,52,-135,143v0,72,51,109,132,109v79,0,137,-33,137,-109"},"9":{"d":"442,-322v0,160,-72,337,-241,337v-37,0,-85,-6,-126,-17r25,-63v33,13,58,24,96,24v114,0,178,-113,178,-266v-28,59,-84,100,-142,100v-124,0,-187,-82,-187,-206v0,-112,78,-207,191,-207v174,0,206,150,206,298xm365,-362v0,-155,-46,-202,-130,-202v-69,0,-116,57,-116,151v0,81,24,151,115,151v81,0,117,-64,131,-100"},":":{"d":"161,-369r-78,0r0,-83r78,0r0,83xm161,0r-78,0r0,-83r78,0r0,83","w":244},";":{"d":"158,-369r-78,0r0,-83r78,0r0,83xm161,-75r-81,178r-52,0r52,-178r81,0","w":244},"<":{"d":"452,-21r-417,-168r0,-79r417,-169r0,70r-350,139r350,138r0,69"},"=":{"d":"452,-270r-417,0r0,-58r417,0r0,58xm452,-97r-417,0r0,-58r417,0r0,58"},">":{"d":"452,-189r-417,168r0,-69r350,-140r-350,-137r0,-70r417,169r0,79"},"?":{"d":"380,-503v0,119,-162,141,-162,247r0,92r-69,0r0,-97v0,-136,159,-147,159,-242v0,-130,-158,-105,-239,-62r-18,-62v129,-44,329,-66,329,124xm224,0r-80,0r0,-84r80,0r0,84","w":410},"@":{"d":"759,-382v0,183,-134,257,-297,257v-124,0,-213,-68,-213,-195v0,-104,71,-192,195,-192v40,0,71,9,86,15r0,193r35,-5r20,52r-114,14r0,-213v-85,-19,-155,29,-155,134v0,109,72,147,148,147v133,0,227,-52,227,-206v0,-164,-118,-226,-241,-226v-149,0,-301,78,-301,287v0,300,279,327,512,250r24,55v-82,25,-165,32,-239,32v-219,0,-364,-121,-364,-337v0,-221,160,-338,368,-338v146,0,309,84,309,276","w":841},"A":{"d":"600,0r-82,0r-69,-193r-266,0r-73,193r-77,0r263,-647r60,0xm430,-248r-108,-307r-118,307r226,0","w":632,"k":{"\u00d9":12,"\u00db":12,"\u00da":12,"\u00d2":24,"\u00d4":24,"\u00d3":24,"\u00ff":52,"\u00d5":24,"\u00e6":12,"\u00a2":12,"\u00fc":12,"\u00fb":12,"\u00f9":12,"\u00fa":12,"\u00f5":12,"\u00f6":12,"\u00f4":12,"\u00f2":12,"\u00f3":12,"\u00eb":12,"\u00ea":12,"\u00e8":12,"\u00e9":12,"\u00e7":12,"\u00e5":12,"\u00e3":12,"\u00e4":12,"\u00e2":12,"\u00e0":12,"\u00e1":12,"\u00dc":12,"\u00d6":24,"\u00c7":24,"y":52,"w":52,"v":52,"u":12,"t":12,"q":12,"o":12,"e":12,"d":12,"c":12,"a":12,"Y":52,"W":52,"V":52,"T":52,"Q":12,"O":12,"G":12,"C":12,"A":-1,"@":24,"&":24,"\u00fd":52,"\u00dd":52}},"B":{"d":"522,-184v0,229,-220,178,-424,184r0,-647v188,4,394,-36,394,169v0,68,-43,118,-103,139v80,16,133,66,133,155xm417,-477v0,-90,-45,-113,-143,-113r-103,0r0,229v124,3,246,12,246,-116xm446,-184v-2,-146,-142,-118,-275,-121r0,248v137,-5,277,32,275,-127","w":580,"k":{"V":8}},"C":{"d":"503,-12v-57,20,-107,29,-170,29v-198,0,-270,-143,-270,-340v0,-180,65,-335,276,-335v56,0,108,8,157,24r-25,64v-42,-18,-84,-31,-132,-31v-157,0,-200,127,-200,277v0,159,45,284,194,284v50,0,93,-15,145,-36","w":543},"D":{"d":"565,-326v0,235,-90,326,-309,326r-158,0r0,-647r158,0v224,0,309,88,309,321xm489,-325v0,-239,-102,-276,-318,-265r0,533r94,0v152,0,224,-81,224,-268","w":628,"k":{"V":8,"J":20}},"E":{"d":"465,0r-367,0r0,-647r358,0r0,57r-285,0r0,227r264,0r0,57r-264,0r0,249r294,0r0,57","w":536},"F":{"d":"456,-589r-285,0r0,230r273,0r0,56r-273,0r0,303r-73,0r0,-647r358,0r0,58","w":512},"G":{"d":"533,-39v-67,34,-117,56,-198,56v-216,0,-272,-166,-272,-341v0,-199,79,-334,281,-334v45,0,103,12,149,24r-25,64v-39,-17,-79,-31,-123,-31v-140,0,-206,89,-206,277v0,156,39,284,199,284v48,0,91,-19,129,-40r0,-182r-143,0r0,-58r209,0r0,281","w":596},"H":{"d":"549,0r-73,0r0,-305r-305,0r0,305r-73,0r0,-647r73,0r0,284r305,0r0,-284r73,0r0,647","w":647},"I":{"d":"159,0r-73,0r0,-647r73,0r0,647","w":245},"J":{"d":"300,-204v0,212,-152,242,-262,268r-20,-64v90,-18,209,-24,209,-194r0,-453r73,0r0,443","w":398},"K":{"d":"573,0r-96,0r-306,-312r0,312r-73,0r0,-647r73,0r0,294r287,-294r80,0r-298,307","w":589,"k":{"\u00d9":12,"\u00db":12,"\u00da":12,"\u00d2":24,"\u00d3":24,"\u00ff":52,"\u00d5":24,"\u00e6":24,"\u00a2":24,"\u00fc":24,"\u00fb":24,"\u00f9":24,"\u00fa":24,"\u00f5":-24,"\u00f6":24,"\u00f4":24,"\u00f2":24,"\u00f3":24,"\u00eb":24,"\u00ea":24,"\u00e8":24,"\u00e9":24,"\u00e7":24,"\u00e5":24,"\u00e3":24,"\u00e4":24,"\u00e2":24,"\u00e0":24,"\u00e1":24,"\u00dc":12,"\u00d6":24,"y":52,"w":52,"v":52,"u":24,"q":24,"o":24,"e":24,"d":24,"c":24,"a":24,"U":12,"Q":24,"O":24,"G":24,"C":24,"@":24,"&":12}},"L":{"d":"467,0r-369,0r0,-647r73,0r0,587r296,0r0,60","w":475,"k":{"Y":96,"W":64,"V":72,"T":64,"O":20}},"M":{"d":"740,0r-71,0r0,-568r-221,568r-60,0r-223,-568r0,568r-67,0r0,-647r112,0r211,545r213,-545r106,0r0,647","w":838},"N":{"d":"576,0r-106,0r-305,-561r0,561r-67,0r0,-647r104,0r303,561r0,-561r71,0r0,647","w":674},"O":{"d":"617,-321v0,192,-70,338,-275,338v-215,0,-279,-145,-279,-338v0,-191,73,-337,280,-337v210,0,274,143,274,337xm541,-321v0,-172,-46,-280,-199,-280v-154,0,-203,109,-203,280v0,171,49,281,203,281v156,0,199,-115,199,-281","w":680,"k":{"Z":12,"Y":24,"X":24,"W":24,"V":24,"J":20,"A":12}},"P":{"d":"501,-463v0,134,-75,190,-205,190r-125,0r0,273r-73,0r0,-647r187,0v132,0,216,48,216,184xm426,-463v0,-149,-123,-126,-255,-127r0,260v135,0,255,20,255,-133","w":555,"k":{"J":80,"A":48}},"Q":{"d":"617,-321v0,192,-70,338,-275,338v-215,0,-279,-145,-279,-338v0,-191,72,-337,280,-337v210,0,274,143,274,337xm556,57r-26,57r-213,-31r27,-44xm541,-321v0,-172,-46,-280,-199,-280v-154,0,-203,109,-203,280v0,171,49,281,203,281v156,0,199,-115,199,-281","w":680},"R":{"d":"542,0r-90,0r-213,-289r-68,0r0,289r-73,0r0,-647v196,4,408,-39,408,174v0,94,-43,176,-182,182xm431,-473v0,-76,-45,-117,-126,-117r-134,0r0,244r135,0v94,0,125,-55,125,-127","w":587},"S":{"d":"478,-168v0,212,-244,206,-410,156r25,-64v109,48,310,72,310,-90v0,-87,-80,-112,-163,-142v-86,-31,-172,-68,-172,-181v0,-179,228,-196,388,-143r-25,64v-37,-16,-74,-33,-136,-33v-92,0,-152,36,-152,112v0,64,59,89,127,114v96,34,208,68,208,207","w":549},"T":{"d":"482,-589r-192,0r0,589r-73,0r0,-589r-191,0r0,-58r456,0r0,58","w":508,"k":{"\u00d2":24,"\u00d4":24,"\u00d3":24,"\u00c1":86,"\u00c2":86,"\u00b7":86,"\u00ff":86,"\u00d5":24,"\u00c3":86,"\u00c0":86,"\u00f8":86,"\u00e6":86,"\u00b5":86,"\u00c6":86,"\u00a2":86,"\u00fc":86,"\u00fb":86,"\u00f9":86,"\u00fa":86,"\u00f5":86,"\u00f6":86,"\u00f4":86,"\u00f2":86,"\u00f3":86,"\u00f1":86,"\u00eb":86,"\u00ea":86,"\u00e8":86,"\u00e9":86,"\u00e7":86,"\u00e5":86,"\u00e3":86,"\u00e4":86,"\u00e2":86,"\u00e0":86,"\u00e1":86,"\u00d6":24,"\u00c7":24,"\u00c5":86,"\u00c4":86,"z":86,"y":86,"x":86,"w":86,"v":86,"u":86,"s":86,"r":86,"q":86,"p":86,"o":86,"n":86,"m":86,"j":24,"i":24,"g":86,"e":86,"d":86,"c":86,"a":86,"Q":24,"O":24,"J":52,"G":24,"C":24,"A":52,"@":24,";":86,":":86,".":86,",":86,"\u00fd":86}},"U":{"d":"580,-237v0,172,-75,254,-234,254v-176,0,-248,-83,-248,-256r0,-408r73,0r0,398v0,165,56,209,175,209v111,0,161,-55,161,-209r0,-398r73,0r0,410","w":678},"V":{"d":"575,-647r-236,647r-64,0r-245,-647r81,0r198,548r188,-548r78,0","w":604,"k":{"\u00d2":24,"\u00d4":24,"\u00d3":24,"\u00c1":52,"\u00c2":86,"\u00ff":24,"\u00d5":24,"\u00c3":52,"\u00c0":86,"\u00bf":52,"\u00f8":52,"\u00e6":52,"\u00b5":52,"\u00c6":86,"\u00a2":52,"\u00fc":52,"\u00fb":52,"\u00f9":52,"\u00fa":52,"\u00f5":52,"\u00f6":52,"\u00f4":52,"\u00f2":52,"\u00f3":52,"\u00f1":52,"\u00eb":52,"\u00ea":52,"\u00e8":52,"\u00e9":52,"\u00e7":52,"\u00e5":52,"\u00e3":52,"\u00e4":52,"\u00e2":52,"\u00e0":52,"\u00e1":52,"\u00d6":24,"\u00c7":24,"\u00c5":86,"\u00c4":86,"z":24,"y":24,"x":24,"w":24,"v":24,"u":52,"s":52,"r":52,"q":52,"p":24,"o":52,"n":52,"m":52,"j":24,"i":24,"g":52,"e":52,"d":52,"c":52,"a":52,"Q":24,"O":24,"J":52,"G":24,"C":24,"A":86,";":24,":":24,".":52,",":52,"\u00fd":24}},"W":{"d":"843,-647r-172,647r-85,0r-146,-514r-154,514r-87,0r-163,-647r77,0r138,550r152,-523r85,0r143,524r142,-551r70,0","w":879,"k":{"\u00d2":24,"\u00d4":24,"\u00d3":24,"\u00c1":86,"\u00c2":86,"\u00d5":24,"\u00c3":86,"\u00c0":86,"\u00bf":17,"\u00f8":24,"\u00e6":24,"\u00b5":24,"\u00d8":24,"\u00c6":86,"\u00a2":24,"\u00fc":24,"\u00fb":24,"\u00f9":24,"\u00fa":24,"\u00f5":24,"\u00f6":24,"\u00f4":24,"\u00f2":24,"\u00f3":24,"\u00f1":24,"\u00eb":24,"\u00ea":24,"\u00e8":24,"\u00e9":24,"\u00e7":24,"\u00e5":24,"\u00e3":24,"\u00e4":24,"\u00e2":24,"\u00e0":24,"\u00e1":24,"\u00d6":24,"\u00c7":24,"\u00c5":86,"\u00c4":86,"z":24,"y":24,"x":24,"w":12,"v":12,"u":24,"s":24,"r":24,"q":24,"p":24,"o":24,"n":24,"m":24,"j":8,"i":8,"g":24,"e":24,"d":24,"c":24,"a":24,"Q":24,"O":24,"J":52,"G":24,"C":24,"A":86,";":52,":":52,".":52,",":52,"\u00fd":24}},"X":{"d":"541,0r-89,0r-165,-278r-176,278r-79,0r216,-334r-189,-313r85,0r148,249r156,-249r79,0r-198,307","w":579,"k":{"\u00d2":24,"\u00d4":24,"\u00d3":24,"\u00d5":24,"\u00d6":24,"\u00c7":24,"y":24,"w":24,"v":24,"Q":24,"O":24,"G":24,"C":24,"\u00fd":24}},"Y":{"d":"546,-647r-225,356r0,291r-73,0r0,-287r-232,-360r83,0r189,292r181,-292r77,0","w":562,"k":{"\u00d2":24,"\u00d4":24,"\u00d3":24,"\u00c1":52,"\u00c2":52,"\u00d5":24,"\u00c3":52,"\u00c0":52,"\u00f8":24,"\u00e6":24,"\u00d8":24,"\u00c6":52,"\u00a2":24,"\u00f5":24,"\u00f6":24,"\u00f4":24,"\u00f2":24,"\u00f3":24,"\u00eb":24,"\u00ea":24,"\u00e8":24,"\u00e9":24,"\u00e7":24,"\u00e5":24,"\u00e3":24,"\u00e4":24,"\u00e2":24,"\u00e0":24,"\u00e1":24,"\u00d6":24,"\u00c7":24,"\u00c5":52,"\u00c4":52,"s":24,"q":24,"o":24,"g":24,"e":24,"d":24,"c":24,"a":24,"O":24,"J":52,"G":24,"C":24,"A":52,".":52,",":52,"\u00fd":24}},"Z":{"d":"494,-585r-370,527r362,0r0,58r-418,0r-23,-62r369,-527r-332,0r0,-58r388,0","w":539,"k":{"O":12}},"[":{"d":"226,127r-142,0r0,-803r142,0r0,50r-79,0r0,700r79,0r0,53","w":272},"\\":{"d":"264,10r-62,0r-213,-668r62,0","w":254},"]":{"d":"192,126r-142,0r0,-53r79,0r0,-701r-79,0r0,-49r142,0r0,803","w":272},"^":{"d":"454,-269r-69,0r-142,-299r-142,299r-66,0r181,-378r53,0"},"_":{"d":"501,102r-502,0r0,-51r502,0r0,51","w":500},"`":{"d":"189,-530r-52,0r-118,-117r74,0","w":208},"a":{"d":"416,0r-58,0v-1,-7,-16,-44,-17,-54v-23,33,-70,65,-128,65v-92,0,-166,-39,-166,-131v0,-93,51,-158,245,-158r44,0v3,-79,-7,-139,-91,-139v-63,0,-113,19,-156,40r-23,-56v53,-20,111,-35,180,-35v94,0,156,47,156,147v0,121,-4,206,14,321xm337,-101r0,-128r-31,0v-144,0,-190,33,-190,107v0,51,38,82,104,82v53,0,96,-24,117,-61","w":479},"b":{"d":"444,-231v0,131,-57,242,-193,242v-56,0,-98,-33,-119,-65r-14,54r-57,0v20,-205,5,-438,9,-657r65,0r0,268v21,-35,73,-79,133,-79v129,0,176,110,176,237xm376,-229v0,-137,-52,-188,-120,-188v-75,0,-109,68,-123,98r0,209v27,47,65,70,112,70v89,0,131,-68,131,-189","w":491},"c":{"d":"395,-19v-35,17,-111,30,-146,30v-140,0,-202,-96,-202,-236v0,-148,61,-243,205,-243v41,0,108,17,141,30r-23,55v-34,-17,-85,-34,-119,-34v-101,0,-136,75,-136,192v0,107,35,185,135,185v31,0,83,-14,122,-34","w":433},"d":{"d":"431,0r-57,0r-15,-54v-21,32,-63,65,-119,65v-144,0,-193,-111,-193,-242v0,-128,63,-237,183,-237v61,0,105,42,126,77r0,-266r65,0r0,517v0,58,4,83,10,140xm358,-110r0,-209v-15,-32,-46,-98,-119,-98v-67,0,-124,54,-124,188v0,121,38,189,131,189v47,0,85,-23,112,-70","w":491},"e":{"d":"432,-206r-315,0v3,97,38,167,133,167v50,0,95,-14,142,-39r20,54v-53,25,-113,35,-170,35v-138,0,-195,-108,-195,-235v0,-106,42,-244,191,-244v151,0,194,107,194,262xm367,-257v-2,-109,-42,-160,-128,-160v-71,0,-118,55,-123,160r251,0","w":481},"f":{"d":"279,-614v-105,9,-141,54,-130,157r104,0r0,51r-104,0r0,406r-65,0r0,-406r-69,0r0,-51r69,0r0,-48v0,-106,98,-159,178,-165","w":279},"g":{"d":"463,68v0,91,-99,130,-210,130v-160,0,-214,-49,-214,-126v0,-51,54,-86,90,-95v-35,-15,-61,-40,-61,-77v0,-33,22,-55,44,-74v-14,-16,-50,-53,-50,-125v0,-53,34,-169,183,-169v34,0,57,5,76,12v37,-3,93,-9,141,-11r-20,50r-65,0v24,19,54,63,54,116v0,85,-52,175,-184,175v-26,0,-77,-10,-96,-21v-12,16,-24,25,-24,43v0,23,20,41,136,51v167,14,200,57,200,121xm363,-300v0,-74,-39,-117,-116,-117v-80,0,-117,53,-117,120v0,70,38,120,118,120v86,0,115,-64,115,-123xm395,68v0,-40,-57,-57,-215,-72v-48,11,-73,48,-73,75v0,46,47,77,146,77v101,0,142,-30,142,-80","w":496},"h":{"d":"419,0r-65,0r0,-280v0,-78,-14,-137,-100,-137v-63,0,-106,59,-119,97r0,320r-65,0r0,-657r65,0r0,268v19,-33,65,-79,129,-79v123,0,155,82,155,175r0,293","w":489},"i":{"d":"140,-569r-72,0r0,-78r72,0r0,78xm137,0r-65,0r0,-457r65,0r0,457","w":208},"j":{"d":"136,-569r-73,0r0,-78r73,0r0,78xm132,-6v0,92,-47,139,-137,165r-21,-56v70,-15,93,-41,93,-100r0,-460r65,0r0,451","w":204},"k":{"d":"426,0r-79,0r-212,-239r0,239r-65,0r0,-657r65,0r0,388r194,-188r73,0r-207,198","w":441,"k":{"o":24}},"l":{"d":"135,0r-65,0r0,-657r65,0r0,657","w":205},"m":{"d":"700,0r-65,0r0,-290v0,-68,-16,-127,-100,-127v-58,0,-103,55,-120,102r0,315r-65,0r0,-290v0,-83,-32,-127,-99,-127v-56,0,-101,56,-116,96r0,321r-65,0r0,-352v0,-38,-6,-71,-9,-105r57,0r15,68v19,-28,67,-79,128,-79v82,0,116,38,140,91v26,-42,75,-91,141,-91v105,0,158,54,158,176r0,292","w":770},"n":{"d":"419,0r-65,0r0,-284v0,-70,-12,-133,-101,-133v-60,0,-102,55,-118,97r0,320r-65,0r0,-360v0,-38,-6,-61,-9,-97r57,0r14,68v18,-21,58,-79,130,-79v122,0,157,75,157,180r0,288","w":489},"o":{"d":"450,-231v0,132,-49,242,-201,242v-152,0,-202,-109,-202,-242v0,-126,50,-237,202,-237v153,0,201,105,201,237xm382,-231v0,-112,-31,-186,-133,-186v-96,0,-134,74,-134,186v0,109,31,191,134,191v104,0,133,-79,133,-191","w":497,"k":{"v":24}},"p":{"d":"444,-226v0,128,-57,237,-184,237v-59,0,-100,-29,-125,-63r0,232r-65,0r0,-500v0,-50,-3,-88,-9,-137r57,0r16,69v22,-35,70,-80,127,-80v139,0,183,112,183,242xm376,-228v0,-118,-35,-189,-128,-189v-55,0,-98,52,-114,97r0,211v23,31,51,69,122,69v69,0,120,-54,120,-188","w":491},"q":{"d":"431,-457v-22,197,-5,424,-10,637r-65,0r0,-232v-25,34,-66,63,-125,63v-130,0,-184,-109,-184,-237v0,-130,53,-242,187,-242v57,0,101,45,123,80r17,-69r57,0xm357,-109r0,-211v-16,-45,-58,-97,-113,-97v-87,0,-129,71,-129,189v0,134,52,188,121,188v71,0,98,-38,121,-69","w":491},"r":{"d":"330,-446r-23,55v-16,-14,-45,-26,-72,-26v-55,0,-86,91,-100,120r0,297r-65,0r0,-355v0,-45,-7,-79,-9,-102r57,0r14,93v17,-33,61,-104,116,-104v38,0,66,12,82,22","w":343,"k":{".":52}},"s":{"d":"370,-123v-1,154,-209,154,-327,105r23,-55v56,23,81,33,136,33v65,0,99,-30,99,-82v0,-50,-51,-65,-107,-83v-70,-23,-149,-50,-149,-134v0,-97,84,-129,168,-129v45,0,80,8,142,31r-23,55v-46,-21,-66,-35,-118,-35v-57,0,-100,20,-100,75v0,40,45,55,97,71v72,22,159,47,159,148","w":415},"t":{"d":"272,0r-21,59v-111,-22,-167,-83,-167,-170r0,-295r-69,0r0,-51r69,0r0,-117r65,0r0,117r105,0r0,51r-105,0r0,296v0,70,41,98,123,110","w":254},"u":{"d":"422,0r-57,0r-15,-68v-18,21,-54,79,-126,79v-117,0,-154,-75,-154,-180r0,-288r65,0r0,284v0,70,12,133,98,133v60,0,98,-55,114,-97r0,-320r65,0v4,152,-10,321,10,457","w":483},"v":{"d":"450,-457r-176,457r-57,0r-177,-457r70,0r138,372r135,-372r67,0","w":489,"k":{"\u00c1":24,"\u00c2":24,"\u00c3":24,"\u00c0":24,"\u00bf":8,"\u00f8":12,"\u00e6":12,"\u00c6":24,"\u00a2":12,"\u00fa":8,"\u00f5":12,"\u00f6":12,"\u00f4":12,"\u00f2":12,"\u00f3":12,"\u00eb":12,"\u00ea":12,"\u00e8":12,"\u00e9":12,"\u00e7":12,"\u00e5":12,"\u00e3":12,"\u00e4":12,"\u00e2":12,"\u00e0":12,"\u00e1":12,"\u00c5":24,"s":12,"q":12,"o":12,"g":12,"e":12,"d":12,"c":12,"a":12,"Y":24,"T":24,"J":24,"A":24,".":52,",":52}},"w":{"d":"674,-457r-156,457r-65,0r-98,-322r-106,322r-67,0r-144,-457r69,0r114,374r107,-330r60,0r100,328r121,-372r65,0","w":712,"k":{"\u00c1":24,"\u00c2":24,"\u00c3":24,"\u00c0":24,"\u00bf":8,"\u00f8":12,"\u00e6":12,"\u00c6":24,"\u00a2":12,"\u00f5":12,"\u00f6":12,"\u00f4":12,"\u00f2":12,"\u00f3":12,"\u00eb":12,"\u00ea":12,"\u00e8":12,"\u00e9":12,"\u00e7":12,"\u00e5":12,"\u00e3":12,"\u00e4":12,"\u00e2":12,"\u00e0":12,"\u00e1":12,"\u00c5":24,"\u00c4":24,"s":12,"q":12,"o":12,"g":12,"e":12,"d":12,"c":12,"a":12,"Y":24,"T":24,"J":24,"A":24,".":86,",":86}},"x":{"d":"425,0r-79,0r-121,-186r-129,186r-71,0r164,-231r-153,-226r78,0r115,175r119,-175r69,0r-155,219","w":450},"y":{"d":"446,-457r-191,530v-26,71,-57,107,-139,136r-21,-57v105,-25,91,-95,128,-171r-183,-438r70,0r146,363r124,-363r66,0","w":486,"k":{"\u00c1":24,"\u00c2":24,"\u00c3":24,"\u00c0":24,"\u00f8":12,"\u00e6":12,"\u00c6":24,"\u00a2":12,"\u00f5":12,"\u00f6":12,"\u00f4":12,"\u00f2":12,"\u00f3":12,"\u00eb":12,"\u00ea":12,"\u00e8":12,"\u00e9":12,"\u00e7":12,"\u00e5":12,"\u00e3":12,"\u00e4":12,"\u00e2":12,"\u00e0":12,"\u00e1":12,"\u00c5":24,"\u00c4":24,"s":12,"q":12,"o":12,"g":12,"e":12,"d":12,"c":12,"a":12,"T":24,"J":24,"A":24,".":52,",":52}},"z":{"d":"373,-402r-262,351r250,0r0,51r-301,0r-23,-55r263,-351r-239,0r0,-51r289,0","w":410},"{":{"d":"303,118v-275,-7,-99,-345,-255,-356r0,-55v152,-5,-24,-345,255,-354r0,54v-201,0,-56,267,-193,329v140,51,-4,328,193,328r0,54","w":357},"|":{"d":"151,166r-59,0r0,-868r59,0r0,868","w":244},"}":{"d":"309,-238v-156,11,20,349,-255,356r0,-54v197,0,53,-277,193,-328v-137,-62,8,-329,-193,-329r0,-54v279,9,103,349,255,354r0,55","w":357},"~":{"d":"462,-256v0,66,-54,105,-119,105v-80,0,-144,-78,-194,-78v-44,0,-67,21,-67,72r-56,-28v0,-67,49,-105,116,-105v79,0,142,77,194,77v44,0,70,-24,70,-71"},"\u00c4":{"d":"600,0r-82,0r-69,-193r-266,0r-73,193r-77,0r263,-647r60,0xm430,-248r-108,-307r-118,307r226,0xm432,-689r-65,0r0,-73r65,0r0,73xm281,-689r-65,0r0,-73r65,0r0,73","w":632,"k":{"\u00d2":12,"\u00d3":12,"\u00ff":52,"\u00d5":12,"\u00e6":12,"\u00a2":12,"\u00fc":12,"\u00fb":12,"\u00f9":12,"\u00fa":12,"\u00f5":12,"\u00f6":12,"\u00f4":12,"\u00f2":12,"\u00f3":12,"\u00eb":12,"\u00ea":12,"\u00e9":12,"\u00e7":12,"\u00e5":12,"\u00e3":12,"\u00e4":12,"\u00e2":12,"\u00e0":12,"\u00e1":12,"\u00d6":12,"\u00c7":12,"y":52,"w":52,"v":52,"u":12,"q":12,"o":12,"e":12,"d":12,"c":12,"a":12,"Y":86,"W":86,"V":86,"T":52,"Q":12,"O":8,"G":12,"C":12,"\u00dd":52}},"\u00c5":{"d":"600,0r-82,0r-69,-193r-266,0r-73,193r-77,0r263,-647r60,0xm430,-248r-108,-307r-118,307r226,0xm419,-753v0,46,-37,82,-83,82v-45,0,-83,-37,-83,-82v0,-46,37,-82,83,-82v47,0,83,35,83,82xm384,-754v0,-27,-18,-49,-48,-49v-63,1,-64,98,0,98v32,0,48,-24,48,-49","w":632},"\u00c7":{"d":"503,-12v-52,18,-99,28,-155,29r-2,13v49,0,73,35,73,65v0,55,-40,88,-103,88v-29,0,-62,-4,-91,-8r17,-52v32,4,49,8,69,8v24,0,48,-10,48,-34v0,-21,-9,-33,-80,-33r13,-50v-167,-18,-229,-154,-229,-337v0,-180,65,-335,276,-335v56,0,108,8,157,24r-25,64v-42,-18,-84,-31,-132,-31v-157,0,-200,127,-200,277v0,159,45,284,194,284v50,0,93,-15,145,-36","w":543},"\u00c9":{"d":"465,0r-367,0r0,-647r358,0r0,57r-285,0r0,227r264,0r0,57r-264,0r0,249r294,0r0,57xm377,-794r-118,117r-52,0r96,-117r74,0","w":536},"\u00d1":{"d":"576,0r-106,0r-305,-561r0,561r-67,0r0,-647r104,0r303,561r0,-561r71,0r0,647xm462,-753v-13,37,-42,66,-86,66v-37,0,-65,-39,-96,-39v-27,0,-40,24,-46,43r-44,-19v22,-51,44,-67,91,-67v34,0,65,37,93,37v25,0,38,-23,44,-41","w":674},"\u00d6":{"d":"617,-321v0,192,-70,338,-275,338v-215,0,-279,-145,-279,-338v0,-191,73,-337,280,-337v210,0,274,143,274,337xm541,-321v0,-172,-46,-280,-199,-280v-154,0,-203,109,-203,280v0,171,49,281,203,281v156,0,199,-115,199,-281xm449,-689r-65,0r0,-73r65,0r0,73xm298,-689r-65,0r0,-73r65,0r0,73","w":680},"\u00dc":{"d":"580,-237v0,172,-75,254,-234,254v-176,0,-248,-83,-248,-256r0,-408r73,0r0,398v0,165,56,209,175,209v111,0,161,-55,161,-209r0,-398r73,0r0,410xm452,-689r-65,0r0,-73r65,0r0,73xm301,-689r-65,0r0,-73r65,0r0,73","w":678},"\u00e1":{"d":"416,0r-58,0v-1,-7,-16,-44,-17,-54v-23,33,-70,65,-128,65v-92,0,-166,-39,-166,-131v0,-93,51,-158,245,-158r44,0v3,-79,-7,-139,-91,-139v-63,0,-113,19,-156,40r-23,-56v53,-20,111,-35,180,-35v94,0,156,47,156,147v0,121,-4,206,14,321xm337,-101r0,-128r-31,0v-144,0,-190,33,-190,107v0,51,38,82,104,82v53,0,96,-24,117,-61xm338,-647r-118,117r-52,0r96,-117r74,0","w":479},"\u00e0":{"d":"416,0r-58,0v-1,-7,-16,-44,-17,-54v-23,33,-70,65,-128,65v-92,0,-166,-39,-166,-131v0,-93,51,-158,245,-158r44,0v3,-79,-7,-139,-91,-139v-63,0,-113,19,-156,40r-23,-56v53,-20,111,-35,180,-35v94,0,156,47,156,147v0,121,-4,206,14,321xm337,-101r0,-128r-31,0v-144,0,-190,33,-190,107v0,51,38,82,104,82v53,0,96,-24,117,-61xm278,-530r-52,0r-118,-117r74,0","w":479},"\u00e2":{"d":"416,0r-58,0v-1,-7,-16,-44,-17,-54v-23,33,-70,65,-128,65v-92,0,-166,-39,-166,-131v0,-93,51,-158,245,-158r44,0v3,-79,-7,-139,-91,-139v-63,0,-113,19,-156,40r-23,-56v53,-20,111,-35,180,-35v94,0,156,47,156,147v0,121,-4,206,14,321xm337,-101r0,-128r-31,0v-144,0,-190,33,-190,107v0,51,38,82,104,82v53,0,96,-24,117,-61xm342,-537r-54,0r-62,-70r-64,70r-54,0r89,-110r58,0","w":479},"\u00e4":{"d":"416,0r-58,0v-1,-7,-16,-44,-17,-54v-23,33,-70,65,-128,65v-92,0,-166,-39,-166,-131v0,-93,51,-158,245,-158r44,0v3,-79,-7,-139,-91,-139v-63,0,-113,19,-156,40r-23,-56v53,-20,111,-35,180,-35v94,0,156,47,156,147v0,121,-4,206,14,321xm337,-101r0,-128r-31,0v-144,0,-190,33,-190,107v0,51,38,82,104,82v53,0,96,-24,117,-61xm346,-543r-66,0r0,-77r66,0r0,77xm193,-543r-65,0r0,-77r65,0r0,77","w":479},"\u00e3":{"d":"416,0r-58,0v-1,-7,-16,-44,-17,-54v-23,33,-70,65,-128,65v-92,0,-166,-39,-166,-131v0,-93,51,-158,245,-158r44,0v3,-79,-7,-139,-91,-139v-63,0,-113,19,-156,40r-23,-56v53,-20,111,-35,180,-35v94,0,156,47,156,147v0,121,-4,206,14,321xm337,-101r0,-128r-31,0v-144,0,-190,33,-190,107v0,51,38,82,104,82v53,0,96,-24,117,-61xm361,-605v-13,37,-42,66,-86,66v-37,0,-65,-39,-96,-39v-27,0,-40,24,-46,43r-44,-19v22,-51,44,-67,91,-67v34,0,65,37,93,37v25,0,38,-23,44,-41","w":479},"\u00e5":{"d":"416,0r-58,0v-1,-7,-16,-44,-17,-54v-23,33,-70,65,-128,65v-92,0,-166,-39,-166,-131v0,-93,51,-158,245,-158r44,0v3,-79,-7,-139,-91,-139v-63,0,-113,19,-156,40r-23,-56v53,-20,111,-35,180,-35v94,0,156,47,156,147v0,121,-4,206,14,321xm337,-101r0,-128r-31,0v-144,0,-190,33,-190,107v0,51,38,82,104,82v53,0,96,-24,117,-61xm323,-589v0,46,-37,82,-83,82v-45,0,-83,-37,-83,-82v0,-46,37,-82,83,-82v47,0,83,35,83,82xm288,-590v0,-27,-18,-49,-48,-49v-63,1,-64,98,0,98v32,0,48,-24,48,-49","w":479},"\u00e7":{"d":"376,-14v-28,11,-73,21,-107,24r-5,20v49,0,72,37,72,65v0,50,-38,87,-101,87v-29,0,-62,-3,-91,-7r8,-50v57,7,116,23,128,-28v0,-21,-11,-34,-82,-34r15,-55v-110,-16,-166,-106,-166,-233v0,-148,67,-241,205,-241v41,0,91,13,120,25r-13,60v-33,-22,-74,-35,-108,-35v-99,0,-137,74,-137,191v0,107,43,184,136,184v34,0,72,-12,112,-36","w":423},"\u00e9":{"d":"432,-206r-315,0v3,97,38,167,133,167v50,0,95,-14,142,-39r20,54v-53,25,-113,35,-170,35v-138,0,-195,-108,-195,-235v0,-106,42,-244,191,-244v151,0,194,107,194,262xm367,-257v-2,-109,-42,-160,-128,-160v-71,0,-118,55,-123,160r251,0xm338,-647r-118,117r-52,0r96,-117r74,0","w":481},"\u00e8":{"d":"432,-206r-315,0v3,97,38,167,133,167v50,0,95,-14,142,-39r20,54v-53,25,-113,35,-170,35v-138,0,-195,-108,-195,-235v0,-106,42,-244,191,-244v151,0,194,107,194,262xm367,-257v-2,-109,-42,-160,-128,-160v-71,0,-118,55,-123,160r251,0xm293,-530r-52,0r-118,-117r74,0","w":481},"\u00ea":{"d":"432,-206r-315,0v3,97,38,167,133,167v50,0,95,-14,142,-39r20,54v-53,25,-113,35,-170,35v-138,0,-195,-108,-195,-235v0,-106,42,-244,191,-244v151,0,194,107,194,262xm367,-257v-2,-109,-42,-160,-128,-160v-71,0,-118,55,-123,160r251,0xm356,-537r-54,0r-62,-70r-64,70r-54,0r89,-110r58,0","w":481},"\u00eb":{"d":"432,-206r-315,0v3,97,38,167,133,167v50,0,95,-14,142,-39r20,54v-53,25,-113,35,-170,35v-138,0,-195,-108,-195,-235v0,-106,42,-244,191,-244v151,0,194,107,194,262xm367,-257v-2,-109,-42,-160,-128,-160v-71,0,-118,55,-123,160r251,0xm354,-554r-65,0r0,-73r65,0r0,73xm203,-554r-65,0r0,-73r65,0r0,73","w":481},"\u00ed":{"d":"190,-647r-118,117r-52,0r96,-117r74,0xm138,0r-65,0r0,-457r65,0r0,457","w":208},"\u00ec":{"d":"184,-530r-52,0r-118,-117r74,0xm137,0r-65,0r0,-457r65,0r0,457","w":208},"\u00ee":{"d":"221,-537r-54,0r-62,-70r-64,70r-54,0r89,-110r58,0xm136,0r-65,0r0,-457r65,0r0,457","w":208},"\u00ef":{"d":"212,-568r-65,0r0,-73r65,0r0,73xm61,-568r-65,0r0,-73r65,0r0,73xm138,0r-65,0r0,-457r65,0r0,457","w":208},"\u00f1":{"d":"419,0r-65,0r0,-284v0,-70,-12,-133,-101,-133v-60,0,-102,55,-118,97r0,320r-65,0r0,-360v0,-38,-6,-61,-9,-97r57,0r14,68v18,-21,58,-79,130,-79v122,0,157,75,157,180r0,288xm384,-605v-13,37,-42,66,-86,66v-37,0,-65,-39,-96,-39v-27,0,-40,24,-46,43r-44,-19v22,-51,44,-67,91,-67v34,0,65,37,93,37v25,0,38,-23,44,-41","w":489},"\u00f3":{"d":"450,-231v0,132,-49,242,-201,242v-152,0,-202,-109,-202,-242v0,-126,50,-237,202,-237v153,0,201,105,201,237xm382,-231v0,-112,-31,-186,-133,-186v-96,0,-134,74,-134,186v0,109,31,191,134,191v104,0,133,-79,133,-191xm345,-647r-118,117r-52,0r96,-117r74,0","w":497},"\u00f2":{"d":"450,-231v0,132,-49,242,-201,242v-152,0,-202,-109,-202,-242v0,-126,50,-237,202,-237v153,0,201,105,201,237xm382,-231v0,-112,-31,-186,-133,-186v-96,0,-134,74,-134,186v0,109,31,191,134,191v104,0,133,-79,133,-191xm315,-530r-52,0r-118,-117r74,0","w":497},"\u00f4":{"d":"450,-231v0,132,-49,242,-201,242v-152,0,-202,-109,-202,-242v0,-126,50,-237,202,-237v153,0,201,105,201,237xm382,-231v0,-112,-31,-186,-133,-186v-96,0,-134,74,-134,186v0,109,31,191,134,191v104,0,133,-79,133,-191xm367,-537r-54,0r-62,-70r-64,70r-54,0r89,-110r58,0","w":497},"\u00f6":{"d":"450,-231v0,132,-49,242,-201,242v-152,0,-202,-109,-202,-242v0,-126,50,-237,202,-237v153,0,201,105,201,237xm382,-231v0,-112,-31,-186,-133,-186v-96,0,-134,74,-134,186v0,109,31,191,134,191v104,0,133,-79,133,-191xm354,-554r-65,0r0,-73r65,0r0,73xm203,-554r-65,0r0,-73r65,0r0,73","w":497},"\u00f5":{"d":"450,-231v0,132,-49,242,-201,242v-152,0,-202,-109,-202,-242v0,-126,50,-237,202,-237v153,0,201,105,201,237xm382,-231v0,-112,-31,-186,-133,-186v-96,0,-134,74,-134,186v0,109,31,191,134,191v104,0,133,-79,133,-191xm374,-605v-13,37,-42,66,-86,66v-37,0,-65,-39,-96,-39v-27,0,-40,24,-46,43r-44,-19v22,-51,44,-67,91,-67v34,0,65,37,93,37v25,0,38,-23,44,-41","w":497},"\u00fa":{"d":"406,0r-57,0r-15,-68v-18,21,-54,79,-126,79v-117,0,-154,-75,-154,-180r0,-288r65,0r0,284v0,70,12,133,98,133v60,0,98,-55,114,-97r0,-320r65,0v4,152,-10,321,10,457xm320,-647r-118,117r-52,0r96,-117r74,0","w":483},"\u00f9":{"d":"306,-530r-52,0r-118,-117r74,0xm422,0r-57,0r-15,-68v-18,21,-54,79,-126,79v-117,0,-154,-75,-154,-180r0,-288r65,0r0,284v0,70,12,133,98,133v60,0,98,-55,114,-97r0,-320r65,0v4,152,-10,321,10,457","w":483},"\u00fb":{"d":"422,0r-57,0r-15,-68v-18,21,-54,79,-126,79v-117,0,-154,-75,-154,-180r0,-288r65,0r0,284v0,70,12,133,98,133v60,0,98,-55,114,-97r0,-320r65,0v4,152,-10,321,10,457xm359,-537r-54,0r-62,-70r-64,70r-54,0r89,-110r58,0","w":483},"\u00fc":{"d":"422,0r-57,0r-15,-68v-18,21,-54,79,-126,79v-117,0,-154,-75,-154,-180r0,-288r65,0r0,284v0,70,12,133,98,133v60,0,98,-55,114,-97r0,-320r65,0v4,152,-10,321,10,457xm349,-554r-65,0r0,-73r65,0r0,73xm198,-554r-65,0r0,-73r65,0r0,73","w":483},"\u00b0":{"d":"342,-468v0,84,-68,142,-148,142v-80,0,-146,-58,-146,-142v0,-84,67,-146,147,-146v80,0,147,62,147,146xm287,-468v0,-55,-39,-95,-92,-95v-53,0,-92,40,-92,95v0,50,43,91,91,91v48,0,93,-41,93,-91","w":390},"\u00a2":{"d":"385,-19v-29,14,-76,24,-112,28r0,90r-57,0r0,-90v-117,-14,-169,-106,-169,-234v0,-136,50,-226,169,-241r0,-92r57,0r0,91v39,4,82,18,110,29r-23,55v-27,-14,-58,-25,-87,-30r0,370v27,-4,59,-15,89,-31xm216,-45r0,-368v-75,15,-101,88,-101,188v0,92,25,165,101,180","w":423},"\u00a3":{"d":"463,0r-412,0r0,-60r68,0r0,-271r-72,0r0,-55r72,0r0,-26v0,-212,146,-239,262,-259r20,64v-97,14,-209,19,-209,189r0,32r174,0r0,55r-174,0r0,271r271,0r0,60"},"\u00a7":{"d":"398,-317v0,49,-29,84,-67,101v34,23,49,58,49,98v0,151,-201,156,-315,105r24,-58v47,20,72,34,125,34v65,0,96,-28,96,-80v0,-116,-251,-59,-251,-214v0,-56,27,-91,68,-109v-30,-18,-52,-48,-52,-89v0,-148,189,-151,301,-98r-23,57v-57,-44,-208,-61,-208,38v0,96,253,45,253,215xm328,-316v0,-63,-66,-71,-134,-93v-41,7,-65,30,-65,76v0,53,76,61,141,85v39,-13,58,-35,58,-68","w":457},"\u00b6":{"d":"484,188r-63,0r0,-780r-101,0v-61,0,-108,37,-108,116v0,62,53,100,98,112r0,552r-63,0r0,-499v-128,-10,-167,-95,-167,-166v0,-69,27,-170,185,-170r219,0r0,835","w":540},"\u00df":{"d":"445,-138v0,161,-125,195,-243,195r21,-56v87,0,157,-35,157,-141v0,-115,-120,-163,-176,-179r0,-53v31,-20,114,-70,114,-144v0,-66,-52,-90,-93,-90v-63,0,-90,28,-90,124r0,482r-65,0r0,-471v0,-126,44,-186,155,-186v84,0,159,43,159,144v0,92,-99,145,-124,162v53,22,185,67,185,213","w":494},"\u00ae":{"d":"695,-324v0,188,-148,334,-335,334v-187,0,-335,-146,-335,-334v0,-188,148,-334,335,-334v190,0,335,144,335,334xm646,-324v0,-160,-125,-291,-286,-291v-162,0,-286,130,-286,291v0,158,127,291,286,291v159,0,286,-133,286,-291xm515,-129r-59,0r-135,-173r-37,0r0,173r-48,0r0,-389v121,2,257,-23,257,105v0,55,-28,107,-116,111xm443,-413v0,-75,-85,-68,-159,-66r0,139r83,0v59,0,76,-32,76,-73","w":720},"\u00a9":{"d":"695,-324v0,188,-148,334,-335,334v-187,0,-335,-146,-335,-334v0,-188,148,-334,335,-334v190,0,335,144,335,334xm646,-324v0,-160,-125,-291,-286,-291v-162,0,-286,130,-286,291v0,158,127,291,286,291v159,0,286,-133,286,-291xm463,-137v-36,12,-68,19,-107,19v-122,0,-170,-86,-170,-204v0,-108,43,-201,173,-201v35,0,69,6,100,16r-16,43v-27,-11,-54,-20,-84,-20v-98,0,-123,74,-123,161v0,94,28,166,120,166v32,0,59,-10,92,-23","w":720},"\u2122":{"d":"796,-292r-45,0r0,-308r-133,308r-36,0r-133,-308r0,308r-43,0r0,-355r69,0r127,295r128,-295r66,0r0,355xm356,-611r-114,0r0,320r-47,0r0,-320r-112,0r0,-36r273,0r0,36","w":902},"\u00b4":{"d":"189,-647r-118,117r-52,0r96,-117r74,0","w":208},"\u00a8":{"d":"212,-574r-65,0r0,-73r65,0r0,73xm61,-574r-65,0r0,-73r65,0r0,73","w":280},"\u00c6":{"d":"829,0r-317,0r-33,-193r-257,0r-107,193r-82,0r367,-647r420,0r0,57r-340,0r41,227r278,0r0,57r-267,0r45,249r252,0r0,57xm469,-248r-52,-304r-166,304r218,0","w":900},"\u00d8":{"d":"652,-646r-83,98v35,59,48,138,48,227v0,192,-70,338,-275,338v-89,0,-152,-26,-194,-70r-84,99r-48,-45r90,-106v-31,-58,-43,-132,-43,-216v0,-191,73,-337,280,-337v81,0,140,22,182,60r79,-92xm482,-547v-31,-34,-76,-54,-140,-54v-154,0,-203,109,-203,280v0,58,5,111,20,154xm541,-321v0,-64,-7,-121,-25,-165r-324,381v31,41,80,65,150,65v156,0,199,-115,199,-281","w":680},"\u00b1":{"d":"452,-247r-177,0r0,127r-63,0r0,-127r-176,0r0,-55r176,0r0,-122r63,0r0,122r177,0r0,55xm452,-1r-417,0r0,-58r417,0r0,58"},"\u00a5":{"d":"481,-647r-186,337r135,0r0,55r-146,0r0,71r146,0r0,55r-146,0r0,129r-73,0r0,-129r-145,0r0,-55r145,0r0,-71r-145,0r0,-55r132,0r-192,-337r82,0r162,290r156,-290r75,0"},"\u00b5":{"d":"424,0r-57,0r-15,-68v-18,21,-52,79,-124,79v-40,0,-70,-11,-90,-31r0,200r-66,0r0,-637r66,0r0,284v0,70,12,133,98,133v60,0,97,-65,113,-107r0,-310r66,0r0,360v0,38,6,61,9,97"},"\u03bc":{"d":"424,0r-57,0r-15,-68v-18,21,-52,79,-124,79v-40,0,-70,-11,-90,-31r0,200r-66,0r0,-637r66,0r0,284v0,70,12,133,98,133v60,0,97,-65,113,-107r0,-310r66,0r0,360v0,38,6,61,9,97"},"\u00aa":{"d":"358,-391r-41,0v0,-4,-9,-23,-10,-29v-33,54,-182,46,-176,-37v-9,-57,59,-95,173,-89v2,-43,-5,-68,-54,-68v-38,0,-68,9,-94,21r-14,-36v70,-28,207,-37,207,61v0,67,-3,115,9,177xm305,-456r0,-57v-76,-2,-128,8,-128,55v0,28,21,40,58,40v32,0,57,-17,70,-38"},"\u00ba":{"d":"366,-527v0,73,-30,133,-121,133v-91,0,-123,-60,-123,-133v0,-69,32,-131,123,-131v92,0,121,59,121,131xm321,-527v0,-62,-19,-97,-76,-97v-54,0,-78,35,-78,97v0,60,20,99,78,99v55,0,76,-38,76,-99"},"\u00e6":{"d":"719,-206r-315,0v3,97,38,167,133,167v50,0,90,-14,137,-39r21,54v-53,25,-109,35,-166,35v-81,0,-135,-41,-157,-90v-39,55,-85,90,-159,90v-92,0,-166,-39,-166,-131v0,-93,51,-158,245,-158r47,0v4,-80,-10,-139,-94,-139v-63,0,-113,19,-156,40r-23,-56v96,-40,278,-66,317,42v27,-44,72,-77,142,-77v155,0,194,107,194,262xm654,-257v-2,-109,-42,-160,-128,-160v-71,0,-118,55,-123,160r251,0xm339,-113r0,-114r-33,0v-144,0,-190,31,-190,105v0,51,38,82,104,82v53,0,98,-36,119,-73","w":768},"\u00f8":{"d":"488,-436r-63,68v57,158,27,379,-176,379v-58,0,-101,-16,-132,-44r-57,60r-47,-45r63,-66v-63,-154,-35,-384,173,-384v62,0,106,18,136,49r57,-61xm344,-375v-20,-26,-50,-42,-95,-42v-127,0,-154,157,-122,278xm249,-40v132,0,146,-147,125,-272r-216,235v20,23,49,37,91,37","w":497},"\u00bf":{"d":"286,-563r-79,0r0,-84r79,0r0,84xm380,-20v-129,44,-329,66,-329,-124v0,-119,162,-141,162,-247r0,-92r68,0r0,97v0,136,-158,147,-158,242v0,130,158,105,239,62","w":410},"\u00a1":{"d":"162,-563r-80,0r0,-84r80,0r0,84xm155,0r-65,0r0,-477r65,0r0,477","w":244},"\u00ac":{"d":"462,-108r-63,0r0,-178r-379,0r0,-55r442,0r0,233"},"\u00ab":{"d":"333,-452r-97,180r96,180r-63,0r-93,-178r93,-182r64,0xm190,-452r-97,180r96,180r-63,0r-93,-178r93,-182r64,0","w":364},"\u00bb":{"d":"331,-270r-93,178r-63,0r96,-180r-97,-180r64,0xm188,-270r-93,178r-63,0r96,-180r-97,-180r64,0","w":364},"\u2026":{"d":"648,0r-78,0r0,-83r78,0r0,83xm404,0r-77,0r0,-83r77,0r0,83xm161,0r-78,0r0,-83r78,0r0,83","w":731},"\u00a0":{"w":244},"\u00c0":{"d":"600,0r-82,0r-69,-193r-266,0r-73,193r-77,0r263,-647r60,0xm430,-248r-108,-307r-118,307r226,0xm415,-684r-52,0r-118,-117r77,0","w":632},"\u00c3":{"d":"600,0r-82,0r-69,-193r-266,0r-73,193r-77,0r263,-647r60,0xm430,-248r-108,-307r-118,307r226,0xm463,-755v-13,37,-42,66,-86,66v-37,0,-65,-39,-96,-39v-27,0,-40,24,-46,43r-44,-19v22,-51,44,-67,91,-67v34,0,65,37,93,37v25,0,38,-23,44,-41","w":632},"\u00d5":{"d":"617,-321v0,192,-70,338,-275,338v-215,0,-279,-145,-279,-338v0,-191,73,-337,280,-337v210,0,274,143,274,337xm541,-321v0,-172,-46,-280,-199,-280v-154,0,-203,109,-203,280v0,171,49,281,203,281v156,0,199,-115,199,-281xm477,-753v-13,37,-42,66,-86,66v-37,0,-65,-39,-96,-39v-27,0,-40,24,-46,43r-44,-19v22,-51,44,-67,91,-67v34,0,65,37,93,37v25,0,38,-23,44,-41","w":680},"\u2013":{"d":"501,-210r-502,0r0,-58r502,0r0,58","w":500},"\u2014":{"d":"1001,-207r-1002,0r0,-61r1002,0r0,61","w":1000},"\u201c":{"d":"324,-648r-85,188r-64,0r98,-188r51,0xm189,-648r-85,188r-64,0r99,-188r50,0","w":364},"\u201d":{"d":"324,-647r-99,188r-51,0r85,-188r65,0xm189,-647r-98,188r-51,0r85,-188r64,0","w":364},"\u2018":{"d":"194,-648r-85,188r-64,0r99,-188r50,0","w":244},"\u2019":{"d":"197,-647r-97,188r-52,0r84,-188r65,0","w":244},"\u00f7":{"d":"283,-349r-78,0r0,-83r78,0r0,83xm452,-191r-417,0r0,-54r417,0r0,54xm283,-16r-78,0r0,-83r78,0r0,83"},"\u00ff":{"d":"446,-457r-191,530v-26,71,-57,107,-139,136r-21,-57v105,-25,91,-95,128,-171r-183,-438r70,0r146,363r124,-363r66,0xm359,-561r-65,0r0,-73r65,0r0,73xm208,-561r-65,0r0,-73r65,0r0,73","w":486},"\u00a4":{"d":"511,-631r-19,64v-39,-18,-86,-34,-139,-34v-116,0,-160,78,-177,181r277,0r-18,58r-265,0v-2,23,-1,47,0,70r246,0r-17,57r-224,0v14,112,57,195,172,195v50,0,91,-18,143,-39r0,73v-46,14,-80,23,-143,23v-160,0,-228,-102,-248,-252r-99,0r17,-57r77,0r0,-70r-94,0r17,-58r83,0v21,-136,92,-238,253,-238v52,0,108,10,158,27"},"\u00b7":{"d":"164,-240r-84,0r0,-87r84,0r0,87","w":244},"\u00c2":{"d":"600,0r-82,0r-69,-193r-266,0r-73,193r-77,0r263,-647r60,0xm430,-248r-108,-307r-118,307r226,0xm440,-699r-54,0r-62,-70r-64,70r-54,0r89,-110r58,0","w":632},"\u00ca":{"d":"465,0r-367,0r0,-647r358,0r0,57r-285,0r0,227r264,0r0,57r-264,0r0,249r294,0r0,57xm396,-689r-54,0r-62,-70r-64,70r-54,0r89,-110r58,0","w":536},"\u00c1":{"d":"600,0r-82,0r-69,-193r-266,0r-73,193r-77,0r263,-647r60,0xm430,-248r-108,-307r-118,307r226,0xm409,-799r-118,117r-52,0r96,-117r74,0","w":632},"\u00cb":{"d":"465,0r-367,0r0,-647r358,0r0,57r-285,0r0,227r264,0r0,57r-264,0r0,249r294,0r0,57xm389,-689r-65,0r0,-73r65,0r0,73xm238,-689r-65,0r0,-73r65,0r0,73","w":536},"\u00c8":{"d":"465,0r-367,0r0,-647r358,0r0,57r-285,0r0,227r264,0r0,57r-264,0r0,249r294,0r0,57xm349,-685r-52,0r-118,-117r74,0","w":536},"\u00cd":{"d":"159,0r-73,0r0,-647r73,0r0,647xm211,-809r-118,117r-52,0r96,-117r74,0","w":245},"\u00ce":{"d":"159,0r-73,0r0,-647r73,0r0,647xm240,-697r-54,0r-62,-70r-64,70r-54,0r89,-110r58,0","w":245},"\u00cf":{"d":"160,0r-73,0r0,-647r73,0r0,647xm231,-703r-65,0r0,-73r65,0r0,73xm80,-703r-65,0r0,-73r65,0r0,73","w":245},"\u00cc":{"d":"161,0r-73,0r0,-647r73,0r0,647xm200,-692r-52,0r-118,-117r58,0","w":245},"\u00d3":{"d":"617,-321v0,192,-70,338,-275,338v-215,0,-279,-145,-279,-338v0,-191,73,-337,280,-337v210,0,274,143,274,337xm541,-321v0,-172,-46,-280,-199,-280v-154,0,-203,109,-203,280v0,171,49,281,203,281v156,0,199,-115,199,-281xm451,-799r-118,117r-52,0r96,-117r74,0","w":680},"\u00d4":{"d":"617,-321v0,192,-70,338,-275,338v-215,0,-279,-145,-279,-338v0,-191,73,-337,280,-337v210,0,274,143,274,337xm541,-321v0,-172,-46,-280,-199,-280v-154,0,-203,109,-203,280v0,171,49,281,203,281v156,0,199,-115,199,-281xm458,-689r-54,0r-62,-70r-64,70r-54,0r89,-110r58,0","w":680},"\u00d2":{"d":"617,-321v0,192,-70,338,-275,338v-215,0,-279,-145,-279,-338v0,-191,73,-337,280,-337v210,0,274,143,274,337xm541,-321v0,-172,-46,-280,-199,-280v-154,0,-203,109,-203,280v0,171,49,281,203,281v156,0,199,-115,199,-281xm398,-685r-52,0r-118,-117r74,0","w":680},"\u00da":{"d":"580,-237v0,172,-75,254,-234,254v-176,0,-248,-83,-248,-256r0,-408r73,0r0,398v0,165,56,209,175,209v111,0,161,-55,161,-209r0,-398r73,0r0,410xm440,-796r-118,117r-52,0r96,-117r74,0","w":678},"\u00db":{"d":"580,-237v0,172,-75,254,-234,254v-176,0,-248,-83,-248,-256r0,-408r73,0r0,398v0,165,56,209,175,209v111,0,161,-55,161,-209r0,-398r73,0r0,410xm454,-689r-54,0r-62,-70r-64,70r-54,0r89,-110r58,0","w":678},"\u00d9":{"d":"580,-237v0,172,-75,254,-234,254v-176,0,-248,-83,-248,-256r0,-408r73,0r0,398v0,165,56,209,175,209v111,0,161,-55,161,-209r0,-398r73,0r0,410xm405,-685r-52,0r-118,-117r74,0","w":678},"\u00af":{"d":"220,-566r-232,0r0,-59r232,0r0,59","w":208},"\u00b8":{"d":"196,95v0,55,-39,88,-102,88v-29,0,-62,-4,-91,-8r18,-51v32,4,48,7,68,7v24,0,48,-10,48,-34v0,-21,-9,-33,-80,-33r21,-79r56,0r-10,45v49,0,72,35,72,65","w":208},"\u00d0":{"d":"565,-326v0,235,-90,326,-309,326r-158,0r0,-339r-69,0r0,-54r69,0r0,-254r158,0v224,0,309,88,309,321xm489,-325v0,-239,-102,-276,-318,-265r0,197r150,0r0,54r-150,0r0,282r94,0v152,0,224,-81,224,-268","w":628,"k":{"A":12}},"\u00de":{"d":"501,-327v0,134,-75,190,-205,190r-125,0r0,137r-73,0r0,-647r73,0r0,136v180,-8,330,4,330,184xm426,-327v0,-149,-123,-126,-255,-127r0,260v135,0,255,20,255,-133","w":555},"\u00fe":{"d":"444,-231v0,131,-57,242,-193,242v-56,0,-98,-33,-119,-65r-14,234r-57,0v6,-57,9,-262,9,-320r0,-517r65,0r0,268v21,-35,73,-79,133,-79v129,0,176,110,176,237xm376,-229v0,-137,-52,-188,-120,-188v-75,0,-109,68,-123,98r0,209v27,47,65,70,112,70v89,0,131,-68,131,-189","w":491}}});
;
/**
 * jQuery.jomino - domino your html elements !
 * @author Amin Rockninja - amin.mdlahir(at)gmail(dot)com
 * Version : 1.0.0 - Tue 11 Aug 2009
 */
(function($j){

    // Definition
    jQuery.fn.jomino = function(options){
    
        //default options
        var defaults = {
			//basics
            interval: "200",
            duration: "400",
            easing: 'swing',
            reverse: false,
            random: false,
			autostart: true,
			
			//callbacks
			onAnimate: null,
			onComplete: null
        };
        
        //setup options
        var opts = jQuery.extend({}, defaults, options);
        
        //private variables
        var elems = jQuery.makeArray(this);
		var elemsCollection = new Array;
		var reverse = opts.reverse;
		var intervalTimer = null;
        
        //adjust sequence in array based on options
        elems = opts.reverse ? elems.reverse() : elems; // for backwards direction
        elems = opts.random ? elems.sort(function(){ return 0.5 - Math.random() }) : elems; //elements in array scrambled for randomness
        
        //global methods
		jQuery.jomino = {
            forward: function(){
				reverse = false;
				if (!intervalTimer) {
					intervalTimer = fireElement();
				}
            },
			rewind: function() {
                if (!reverse) {
                    jQuery.jomino.stop();
                    reverse = true;
                    intervalTimer = fireElement();
                }
			},
			stop: function() {
				clearTimeout(intervalTimer);
				intervalTimer = null;
				reverse = false;
			}
        };
		
		//recursive function which executes the animation on the elements in array, one element at a time
        function fireElement(){
			var elemsSize = reverse ? elemsCollection.length : elems.length;
			var nextElem = null;
            if (elemsSize > 0) {
				if(!reverse) {
					nextElem = elems.shift();
                	elemsCollection.push(nextElem);
				} else {
					nextElem = elemsCollection.pop();
					elems.unshift(nextElem);
				}
                jQuery.fn.jomino.animateElement(nextElem, reverse, opts.duration, opts.easing);
                setTimeout(function(){
                    fireCallback(opts, "onAnimate", nextElem);
                }, opts.duration);
				intervalTimer = setTimeout(function(){
                    fireElement();
                }, opts.interval);
                
            } else if (elemsSize == 0) {
                    setTimeout(function(){
                        fireCallback(opts, "onComplete", nextElem);
                    }, opts.duration);
					reverse = false;
					intervalTimer = null;
                }
            }
		
		if(opts.autostart)
			jQuery.jomino.forward();
 
    };
	
	//exposed functions
  	//animation on current element
    jQuery.fn.jomino.animateElement = function(elem, reverse, duration, easemethod){
		reverse ? jQuery(elem).fadeOut(duration, easemethod) : jQuery(elem).fadeIn(duration, easemethod);  
    };
	
	//private functions
    //callback
    function fireCallback(opts, name, obj){
        var fn = opts[name];
        if ($j.isFunction(fn)) {
            try {
                return fn.call(obj);
            } 
            catch (error) {
                log("jomino." + name + ": ", error);
                return false;
            }
        }
        return true;
    }
     
	 // For debugging using firebug
     function log($jtxt, $jobj){
         if (window.console && window.console.log) 
             window.console.log($jtxt, $jobj);
     };
    
    })(jQuery);
;

/*
 * Superfish v1.4.8 - jQuery menu widget
 * Copyright (c) 2008 Joel Birch
 *
 * Dual licensed under the MIT and GPL licenses:
 * 	http://www.opensource.org/licenses/mit-license.php
 * 	http://www.gnu.org/licenses/gpl.html
 *
 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
 */

;(function($){
	$.fn.superfish = function(op){

		var sf = $.fn.superfish,
			c = sf.c,
			$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
			over = function(){
				var $$ = $(this), menu = getMenu($$);
				clearTimeout(menu.sfTimer);
				$$.showSuperfishUl().siblings().hideSuperfishUl();
			},
			out = function(){
				var $$ = $(this), menu = getMenu($$), o = sf.op;
				clearTimeout(menu.sfTimer);
				menu.sfTimer=setTimeout(function(){
					o.retainPath=($.inArray($$[0],o.$path)>-1);
					$$.hideSuperfishUl();
					if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
				},o.delay);	
			},
			getMenu = function($menu){
				var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
				sf.op = sf.o[menu.serial];
				return menu;
			},
			addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
			
		return this.each(function() {
			var s = this.serial = sf.o.length;
			var o = $.extend({},sf.defaults,op);
			o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
				$(this).addClass([o.hoverClass,c.bcClass].join(' '))
					.filter('li:has(ul)').removeClass(o.pathClass);
			});
			sf.o[s] = sf.op = o;
			
			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
				if (o.autoArrows) addArrow( $('>a:first-child',this) );
			})
			.not('.'+c.bcClass)
				.hideSuperfishUl();
			
			var $a = $('a',this);
			$a.each(function(i){
				var $li = $a.eq(i).parents('li');
				$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
			});
			o.onInit.call(this);
			
		}).each(function() {
			var menuClasses = [c.menuClass];
			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
			$(this).addClass(menuClasses.join(' '));
		});
	};

	var sf = $.fn.superfish;
	sf.o = [];
	sf.op = {};
	sf.IE7fix = function(){
		var o = sf.op;
		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
			this.toggleClass(sf.c.shadowClass+'-off');
		};
	sf.c = {
		bcClass     : 'sf-breadcrumb',
		menuClass   : 'sf-js-enabled',
		anchorClass : 'sf-with-ul',
		arrowClass  : 'sf-sub-indicator',
		shadowClass : 'sf-shadow'
	};
	sf.defaults = {
		hoverClass	: 'sfHover',
		pathClass	: 'overideThisToUse',
		pathLevels	: 1,
		delay		: 800,
		animation	: {height:'show'},delay:500,
		speed		: 'fast',
		autoArrows	: true,
		dropShadows : true,
		disableHI	: false,		// true disables hoverIntent detection
		onInit		: function(){}, // callback functions
		onBeforeShow: function(){},
		onShow		: function(){},
		onHide		: function(){}
	};
	$.fn.extend({
		hideSuperfishUl : function(){
			var o = sf.op,
				not = (o.retainPath===true) ? o.$path : '';
			o.retainPath = false;
			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
					.find('>ul').hide().css('visibility','hidden');
			o.onHide.call($ul);
			return this;
		},
		showSuperfishUl : function(){
			var o = sf.op,
				sh = sf.c.shadowClass+'-off',
				$ul = this.addClass(o.hoverClass)
					.find('>ul:hidden').css('visibility','visible');
			sf.IE7fix.call($ul);
			o.onBeforeShow.call($ul);
			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
			return this;
		}
	});

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

(function($) {
	$.prettyPhoto = {version: '2.5.6'};
	
	$.fn.prettyPhoto = function(settings) {
		settings = jQuery.extend({
			animationSpeed: 'normal', /* fast/slow/normal */
			opacity: 0.80, /* Value between 0 and 1 */
			showTitle: true, /* true/false */
			allowresize: true, /* true/false */
			default_width: 500,
			default_height: 344,
			counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
			theme: 'light_rounded', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
			hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
			wmode: 'opaque', /* Set the flash wmode attribute */
			autoplay: true, /* Automatically start videos: True/False */
			modal: false, /* If set to true, only the close button will close the window */
			changepicturecallback: function(){}, /* Called everytime an item is shown/changed */
			callback: function(){}, /* Called when prettyPhoto is closed */
			markup: '<div class="pp_pic_holder"> \
						<div class="pp_top"> \
							<div class="pp_left"></div> \
							<div class="pp_middle"></div> \
							<div class="pp_right"></div> \
						</div> \
						<div class="pp_content_container"> \
							<div class="pp_left"> \
							<div class="pp_right"> \
								<div class="pp_content"> \
									<div class="pp_loaderIcon"></div> \
									<div class="pp_fade"> \
										<a href="#" class="pp_expand" title="Expand the image">Expand</a> \
										<div class="pp_hoverContainer"> \
											<a class="pp_next" href="#">next</a> \
											<a class="pp_previous" href="#">previous</a> \
										</div> \
										<div id="pp_full_res"></div> \
										<div class="pp_details clearfix"> \
											<a class="pp_close" href="#">Close</a> \
											<p class="pp_description"></p> \
											<div class="pp_nav"> \
												<a href="#" class="pp_arrow_previous">Previous</a> \
												<p class="currentTextHolder">0/0</p> \
												<a href="#" class="pp_arrow_next">Next</a> \
											</div> \
										</div> \
									</div> \
								</div> \
							</div> \
							</div> \
						</div> \
						<div class="pp_bottom"> \
							<div class="pp_left"></div> \
							<div class="pp_middle"></div> \
							<div class="pp_right"></div> \
						</div> \
					</div> \
					<div class="pp_overlay"></div> \
					<div class="ppt"></div>',
			image_markup: '<img id="fullResImage" src="" />',
			flash_markup: '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',
			quicktime_markup: '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>',
			iframe_markup: '<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',
			inline_markup: '<div class="pp_inline clearfix">{content}</div>'
		}, settings);
		
		// Fallback to a supported theme for IE6
		if($.browser.msie && parseInt($.browser.version) == 6){
			settings.theme = "light_square";
		}
		
		if($('.pp_overlay').size()==0) _buildOverlay(); // If the overlay is not there, inject it!
		
		// Global variables accessible only by prettyPhoto
		var doresize = true, percentBased = false, correctSizes,
		
		// Cached selectors
		$pp_pic_holder, $ppt, $pp_overlay,
		
		// prettyPhoto container specific
		pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth,
		
		// Window size
		windowHeight = $(window).height(), windowWidth = $(window).width(),
	
		//Gallery specific
		setPosition = 0,

		// Global elements
		scrollPos = _getScroll();
	
		// Window/Keyboard events
		$(window).scroll(function(){ scrollPos = _getScroll(); _centerOverlay(); _resizeOverlay(); });
		$(window).resize(function(){ _centerOverlay(); _resizeOverlay(); });
		$(document).keydown(function(e){
			if($pp_pic_holder.is(':visible'))
			switch(e.keyCode){
				case 37:
					$.prettyPhoto.changePage('previous');
					break;
				case 39:
					$.prettyPhoto.changePage('next');
					break;
				case 27:
					if(!settings.modal)
					$.prettyPhoto.close();
					break;
			};
	    });
	
		// Bind the code to each links
		$(this).each(function(){
			$(this).bind('click',function(){
				_self = this; // Fix scoping
				
				// Find out if the picture is part of a set
				theRel = $(this).attr('rel');
				galleryRegExp = /\[(?:.*)\]/;
				theGallery = galleryRegExp.exec(theRel);
				
				// Build the gallery array
				var images = new Array(), titles = new Array(), descriptions = new Array();
				if(theGallery){
					$('a[rel*='+theGallery+']').each(function(i){
						if($(this)[0] === $(_self)[0]) setPosition = i; // Get the position in the set
						images.push($(this).attr('href'));
						titles.push($(this).find('img').attr('alt'));
						descriptions.push($(this).attr('title'));
					});
				}else{
					images = $(this).attr('href');
					titles = ($(this).find('img').attr('alt')) ?  $(this).find('img').attr('alt') : '';
					descriptions = ($(this).attr('title')) ?  $(this).attr('title') : '';
				}

				$.prettyPhoto.open(images,titles,descriptions);
				return false;
			});
		});
	
		
		/**
		* Opens the prettyPhoto modal box.
		* @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths.
		* @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles.
		* @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions.
		*/
		$.prettyPhoto.open = function(gallery_images,gallery_titles,gallery_descriptions) {
			// To fix the bug with IE select boxes
			if($.browser.msie && $.browser.version == 6){
				$('select').css('visibility','hidden');
			};
			
			if(settings.hideflash) $('object,embed').css('visibility','hidden'); // Hide the flash
			
			// Convert everything to an array in the case it's a single item
			images = $.makeArray(gallery_images);
			titles = $.makeArray(gallery_titles);
			descriptions = $.makeArray(gallery_descriptions);

			image_set = ($(images).size() > 0) ?  true : false; // Find out if it's a set

			// Hide the next/previous links if on first or last images.
			_checkPosition($(images).size());
		
			$('.pp_loaderIcon').show(); // Do I need to explain?
		
			// Fade the content in
			$pp_overlay.show().fadeTo(settings.animationSpeed,settings.opacity);

			// Display the current position
			$pp_pic_holder.find('.currentTextHolder').text((setPosition+1) + settings.counter_separator_label + $(images).size());

			// Set the description
			if(descriptions[setPosition]){
				$pp_pic_holder.find('.pp_description').show().html(unescape(descriptions[setPosition]));
			}else{
				$pp_pic_holder.find('.pp_description').hide().text('');
			};

			// Set the title
			if(titles[setPosition] && settings.showTitle){
				hasTitle = true;
				$ppt.html(unescape(titles[setPosition]));
			}else{
				hasTitle = false;
			};
			
			// Get the dimensions
			movie_width = ( parseFloat(grab_param('width',images[setPosition])) ) ? grab_param('width',images[setPosition]) : settings.default_width.toString();
			movie_height = ( parseFloat(grab_param('height',images[setPosition])) ) ? grab_param('height',images[setPosition]) : settings.default_height.toString();
			
			// If the size is % based, calculate according to window dimensions
			if(movie_width.indexOf('%') != -1 || movie_height.indexOf('%') != -1){
				movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 100);
				movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 100);
				percentBased = true;
			}
			
			// Fade the holder
			$pp_pic_holder.fadeIn(function(){
				imgPreloader = "";
				// Inject the proper content
				switch(_getFileType(images[setPosition])){
					case 'image':
						// Set the new image
						imgPreloader = new Image();

						// Preload the neighbour images
						nextImage = new Image();
						if(image_set && setPosition > $(images).size()) nextImage.src = images[setPosition + 1];
						prevImage = new Image();
						if(image_set && images[setPosition - 1]) prevImage.src = images[setPosition - 1];

						$pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup;
						$pp_pic_holder.find('#fullResImage').attr('src',images[setPosition]);

						imgPreloader.onload = function(){
							// Fit item to viewport
							correctSizes = _fitToViewport(imgPreloader.width,imgPreloader.height);

							_showContent();
						};

						imgPreloader.onerror = function(){
							alert('Image cannot be loaded. Make sure the path is correct and image exist.');
							$.prettyPhoto.close();
						};
					
						imgPreloader.src = images[setPosition];
					break;
				
					case 'youtube':
						correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport

						movie = 'http://www.youtube.com/v/'+grab_param('v',images[setPosition]);
						if(settings.autoplay) movie += "&autoplay=1";
					
						toInject = settings.flash_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);
					break;
				
					case 'vimeo':
						correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
					
						movie_id = images[setPosition];
						movie = 'http://vimeo.com/moogaloop.swf?clip_id='+ movie_id.replace('http://vimeo.com/','');
						if(settings.autoplay) movie += "&autoplay=1";
				
						toInject = settings.flash_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);
					break;
				
					case 'quicktime':
						correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
						correctSizes['height']+=15; correctSizes['contentHeight']+=15; correctSizes['containerHeight']+=15; // Add space for the control bar
				
						toInject = settings.quicktime_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,images[setPosition]).replace(/{autoplay}/g,settings.autoplay);
					break;
				
					case 'flash':
						correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
					
						flash_vars = images[setPosition];
						flash_vars = flash_vars.substring(images[setPosition].indexOf('flashvars') + 10,images[setPosition].length);

						filename = images[setPosition];
						filename = filename.substring(0,filename.indexOf('?'));
					
						toInject =  settings.flash_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars);
					break;
				
					case 'iframe':
						correctSizes = _fitToViewport(movie_width,movie_height); // Fit item to viewport
				
						frame_url = images[setPosition];
						frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1);
				
						toInject = settings.iframe_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{path}/g,frame_url);
					break;
				
					case 'inline':
						// to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete
						myClone = $(images[setPosition]).clone().css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline clearfix"></div></div>').appendTo($('body'));
						correctSizes = _fitToViewport($(myClone).width(),$(myClone).height());
						$(myClone).remove();
						toInject = settings.inline_markup.replace(/{content}/g,$(images[setPosition]).html());
					break;
				};

				if(!imgPreloader){
					$pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject;
				
					// Show content
					_showContent();
				};
			});

		};
		
		/**
		* Change page in the prettyPhoto modal box
		* @param direction {String} Direction of the paging, previous or next.
		*/
		$.prettyPhoto.changePage = function(direction){
			if(direction == 'previous') {
				setPosition--;
				if (setPosition < 0){
					setPosition = 0;
					return;
				};
			}else{
				if($('.pp_arrow_next').is('.disabled')) return;
				setPosition++;
			};

			// Allow the resizing of the images
			if(!doresize) doresize = true;

			_hideContent(function(){$.prettyPhoto.open(images,titles,descriptions)});
			$('a.pp_expand,a.pp_contract').fadeOut(settings.animationSpeed);
		};
		
		/**
		* Closes the prettyPhoto modal box.
		*/
		$.prettyPhoto.close = function(){
			$pp_pic_holder.find('object,embed').css('visibility','hidden');
			
			$('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animationSpeed);
			
			$pp_overlay.fadeOut(settings.animationSpeed, function(){
				$('#pp_full_res').html(''); // Kill the opened content
				
				$pp_pic_holder.attr('style','').find('div:not(.pp_hoverContainer)').attr('style',''); // Reset the width and everything that has been set.
				_centerOverlay(); // Center it
			
				// To fix the bug with IE select boxes
				if($.browser.msie && $.browser.version == 6){
					$('select').css('visibility','visible');
				};
				
				// Show the flash
				if(settings.hideflash) $('object,embed').css('visibility','visible');
				
				setPosition = 0;
				settings.callback();
			});
			doresize = true;
		};
	
		/**
		* Set the proper sizes on the containers and animate the content in.
		*/
		_showContent = function(){
			$('.pp_loaderIcon').hide();

			// Calculate the opened top position of the pic holder
			projectedTop = scrollPos['scrollTop'] + ((windowHeight/2) - (correctSizes['containerHeight']/2));
			if(projectedTop < 0) projectedTop = 0 + $ppt.height();

			// Resize the content holder
			$pp_pic_holder.find('.pp_content').animate({'height':correctSizes['contentHeight']},settings.animationSpeed);
			
			// Resize picture the holder
			$pp_pic_holder.animate({
				'top': projectedTop,
				'left': (windowWidth/2) - (correctSizes['containerWidth']/2),
				'width': correctSizes['containerWidth']
			},settings.animationSpeed,function(){
				$pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(correctSizes['height']).width(correctSizes['width']);

				// Fade the new image
				$pp_pic_holder.find('.pp_fade').fadeIn(settings.animationSpeed);

				// Show the nav
				if(image_set && _getFileType(images[setPosition])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); }

				// Show the title
				if(settings.showTitle && hasTitle){
					$ppt.css({
						'top' : $pp_pic_holder.offset().top - 25,
						'left' : $pp_pic_holder.offset().left + 20,
						'display' : 'none'
					});

					$ppt.fadeIn(settings.animationSpeed);
				};
			
				// Fade the resizing link if the image is resized
				if(correctSizes['resized']) $('a.pp_expand,a.pp_contract').fadeIn(settings.animationSpeed);
				
				// Callback!
				settings.changepicturecallback();
			});
		};
		
		/**
		* Hide the content...DUH!
		*/
		function _hideContent(callback){
			// Fade out the current picture
			$pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden');
			$pp_pic_holder.find('.pp_fade').fadeOut(settings.animationSpeed,function(){
				$('.pp_loaderIcon').show();
				
				if(callback) callback();
			});
			
			// Hide the title
			$ppt.fadeOut(settings.animationSpeed);
		}
	
		/**
		* Check the item position in the gallery array, hide or show the navigation links
		* @param setCount {integer} The total number of items in the set
		*/
		function _checkPosition(setCount){
			// If at the end, hide the next link
			if(setPosition == setCount-1) {
				$pp_pic_holder.find('a.pp_next').css('visibility','hidden');
				$pp_pic_holder.find('a.pp_arrow_next').addClass('disabled').unbind('click');
			}else{ 
				$pp_pic_holder.find('a.pp_next').css('visibility','visible');
				$pp_pic_holder.find('a.pp_arrow_next.disabled').removeClass('disabled').bind('click',function(){
					$.prettyPhoto.changePage('next');
					return false;
				});
			};
		
			// If at the beginning, hide the previous link
			if(setPosition == 0) {
				$pp_pic_holder.find('a.pp_previous').css('visibility','hidden');
				$pp_pic_holder.find('a.pp_arrow_previous').addClass('disabled').unbind('click');
			}else{
				$pp_pic_holder.find('a.pp_previous').css('visibility','visible');
				$pp_pic_holder.find('a.pp_arrow_previous.disabled').removeClass('disabled').bind('click',function(){
					$.prettyPhoto.changePage('previous');
					return false;
				});
			};
			
			// Hide the bottom nav if it's not a set.
			if(setCount > 1) {
				$('.pp_nav').show();
			}else{
				$('.pp_nav').hide();
			}
		};
	
		/**
		* Resize the item dimensions if it's bigger than the viewport
		* @param width {integer} Width of the item to be opened
		* @param height {integer} Height of the item to be opened
		* @return An array containin the "fitted" dimensions
		*/
		function _fitToViewport(width,height){
			hasBeenResized = false;

			_getDimensions(width,height);
			
			// Define them in case there's no resize needed
			imageWidth = width;
			imageHeight = height;

			if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allowresize && !percentBased) {
				hasBeenResized = true;
				notFitting = true;
			
				while (notFitting){
					if((pp_containerWidth > windowWidth)){
						imageWidth = (windowWidth - 200);
						imageHeight = (height/width) * imageWidth;
					}else if((pp_containerHeight > windowHeight)){
						imageHeight = (windowHeight - 200);
						imageWidth = (width/height) * imageHeight;
					}else{
						notFitting = false;
					};

					pp_containerHeight = imageHeight;
					pp_containerWidth = imageWidth;
				};
			
				_getDimensions(imageWidth,imageHeight);
			};

			return {
				width:Math.floor(imageWidth),
				height:Math.floor(imageHeight),
				containerHeight:Math.floor(pp_containerHeight),
				containerWidth:Math.floor(pp_containerWidth) + 40,
				contentHeight:Math.floor(pp_contentHeight),
				contentWidth:Math.floor(pp_contentWidth),
				resized:hasBeenResized
			};
		};
		
		/**
		* Get the containers dimensions according to the item size
		* @param width {integer} Width of the item to be opened
		* @param height {integer} Height of the item to be opened
		*/
		function _getDimensions(width,height){
			width = parseFloat(width);
			height = parseFloat(height);
			
			// Get the details height, to do so, I need to clone it since it's invisible
			$pp_details = $pp_pic_holder.find('.pp_details');
			$pp_details.width(width);
			detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom'));
			$pp_details = $pp_details.clone().appendTo($('body')).css({
				'position':'absolute',
				'top':-10000
			});
			detailsHeight += $pp_details.height();
			detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details
			if($.browser.msie && $.browser.version==7) detailsHeight+=8;
			$pp_details.remove();
			
			// Get the container size, to resize the holder to the right dimensions
			pp_contentHeight = height + detailsHeight;
			pp_contentWidth = width;
			pp_containerHeight = pp_contentHeight + $ppt.height() + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height();
			pp_containerWidth = width;
		}
	
		function _getFileType(itemSrc){
			if (itemSrc.match(/youtube\.com\/watch/i)) {
				return 'youtube';
			}else if (itemSrc.match(/vimeo\.com/i)) {
				return 'vimeo';
			}else if(itemSrc.indexOf('.mov') != -1){ 
				return 'quicktime';
			}else if(itemSrc.indexOf('.swf') != -1){
				return 'flash';
			}else if(itemSrc.indexOf('iframe') != -1){
				return 'iframe'
			}else if(itemSrc.substr(0,1) == '#'){
				return 'inline';
			}else{
				return 'image';
			};
		};
	
		function _centerOverlay(){
			if(doresize) {
				titleHeight = $ppt.height();
				contentHeight = $pp_pic_holder.height();
				contentwidth = $pp_pic_holder.width();
				
				projectedTop = (windowHeight/2) + scrollPos['scrollTop'] - ((contentHeight+titleHeight)/2);
				
				$pp_pic_holder.css({
					'top': projectedTop,
					'left': (windowWidth/2) + scrollPos['scrollLeft'] - (contentwidth/2)
				});
				
				$ppt.css({
					'top' : projectedTop - titleHeight,
					'left': (windowWidth/2) + scrollPos['scrollLeft'] - (contentwidth/2) + 20
				});
			};
		};
	
		function _getScroll(){
			if (self.pageYOffset) {
				return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset};
			} else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
				return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft};
			} else if (document.body) {// all other Explorers
				return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft};
			};
		};
	
		function _resizeOverlay() {
			windowHeight = $(window).height();
			windowWidth = $(window).width();
			
			$pp_overlay.css({
				'height':$(document).height()
			});
		};
	
		function _buildOverlay(){
			// Inject the markup
			$('body').append(settings.markup);
			
			// Set my global selectors
			$pp_pic_holder = $('.pp_pic_holder');
			$ppt = $('.ppt');
			$pp_overlay = $('div.pp_overlay');
			
			$pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme
			
			$pp_overlay
				.css({
					'opacity':0,
					'height':$(document).height()
					})
				.bind('click',function(){
					if(!settings.modal)
					$.prettyPhoto.close();
				});

			$('a.pp_close').bind('click',function(){ $.prettyPhoto.close(); return false; });

			$('a.pp_expand').bind('click',function(){
				$this = $(this); // Fix scoping
				
				// Expand the image
				if($this.hasClass('pp_expand')){
					$this.removeClass('pp_expand').addClass('pp_contract');
					doresize = false;
				}else{
					$this.removeClass('pp_contract').addClass('pp_expand');
					doresize = true;
				};
			
				_hideContent(function(){ $.prettyPhoto.open(images,titles,descriptions) });
				
				$pp_pic_holder.find('.pp_fade').fadeOut(settings.animationSpeed);
		
				return false;
			});
		
			$pp_pic_holder.find('.pp_previous, .pp_arrow_previous').bind('click',function(){
				$.prettyPhoto.changePage('previous');
				return false;
			});
		
			$pp_pic_holder.find('.pp_next, .pp_arrow_next').bind('click',function(){
				$.prettyPhoto.changePage('next');
				return false;
			});
		};
		
		_centerOverlay(); // Center it
	};
	
	function grab_param(name,url){
	  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	  var regexS = "[\\?&]"+name+"=([^&#]*)";
	  var regex = new RegExp( regexS );
	  var results = regex.exec( url );
	  if( results == null )
	    return "";
	  else
	    return results[1];
	}
})(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.Preload
 * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com
 * Dual licensed under MIT and GPL.
 * Date: 3/25/2009
 *
 * @projectDescription Multifunctional preloader
 * @author Ariel Flesler
 * @version 1.0.8
 *
 * @id jQuery.preload
 * @param {String, jQuery, Array< String, <a>, <link>, <img> >} original Collection of sources to preload
 * @param {Object} settings Hash of settings.
 *
 * @id jQuery.fn.preload
 * @param {Object} settings Hash of settings.
 * @return {jQuery} Returns the same jQuery object, for chaining.
 *
 * @example Link Mode:
 *	$.preload( '#images a' );
 *
 * @example Rollover Mode:
 *	$.preload( '#images img', {
 *		find:/\.(gif|jpg)/,
 *		replace:'_over.$1'
 *	});
 *
 * @example Src Mode:
 *	$.preload( [ 'red', 'blue', 'yellow' ], {
 *		base:'images/colors/',
 *		ext:'.jpg'
 *	});
 *
 * @example Placeholder Mode:
 *	$.preload( '#images img', {
 *		placeholder:'placeholder.jpg',
 *		notFound:'notfound.jpg'
 *	});
 *
 * @example Placeholder+Rollover Mode(High res):
 *	$.preload( '#images img', {
 *		placeholder:true,
 *		find:/\.(gif|jpg)/,
 *		replace:'_high.$1'
 *	});
 */
;(function( $ ){

	var $preload = $.preload = function( original, settings ){
		if( original.split ) // selector
			original = $(original);

		settings = $.extend( {}, $preload.defaults, settings );
		var sources = $.map( original, function( source ){
			if( !source ) 
				return; // skip
			if( source.split ) // URL Mode
				return settings.base + source + settings.ext;
			var url = source.src || source.href; // save the original source
			if( typeof settings.placeholder == 'string' && source.src ) // Placeholder Mode, if it's an image, set it.
				source.src = settings.placeholder;
			if( url && settings.find ) // Rollover mode
				url = url.replace( settings.find, settings.replace );
			return url || null; // skip if empty string
		});

		var data = {
			loaded:0, // how many were loaded successfully
			failed:0, // how many urls failed
			next:0, // which one's the next image to load (index)
			done:0, // how many urls were tried
			/*
			index:0, // index of the related image			
			found:false, // whether the last one was successful
			*/
			total:sources.length // how many images are being preloaded overall
		};
		
		if( !data.total ) // nothing to preload
			return finish();
		
		var imgs = $(Array(settings.threshold+1).join('<img/>'))
			.load(handler).error(handler).bind('abort',handler).each(fetch);
		
		function handler( e ){
			data.element = this;
			data.found = e.type == 'load';
			data.image = this.src;
			data.index = this.index;
			var orig = data.original = original[this.index];
			data[data.found?'loaded':'failed']++;
			data.done++;

			// This will ensure that the images aren't "un-cached" after a while
			if( settings.enforceCache )
				$preload.cache.push( 
					$('<img/>').attr('src',data.image)[0]
				);

			if( settings.placeholder && orig.src ) // special case when on placeholder mode
				orig.src = data.found ? data.image : settings.notFound || orig.src;
			if( settings.onComplete )
				settings.onComplete( data );
			if( data.done < data.total ) // let's continue
				fetch( 0, this );
			else{ // we are finished
				if( imgs && imgs.unbind )
					imgs.unbind('load').unbind('error').unbind('abort'); // cleanup
				imgs = null;
				finish();
			}
		};
		function fetch( i, img, retry ){
			// IE problem, can't preload more than 15
			if( img.attachEvent /* msie */ && data.next && data.next % $preload.gap == 0 && !retry ){
				setTimeout(function(){ fetch( i, img, true ); }, 0);
				return false;
			}
			if( data.next == data.total ) return false; // no more to fetch
			img.index = data.next; // save it, we'll need it.
			img.src = sources[data.next++];
			if( settings.onRequest ){
				data.index = img.index;
				data.element = img;
				data.image = img.src;
				data.original = original[data.next-1];
				settings.onRequest( data );
			}
		};
		function finish(){
			if( settings.onFinish )
				settings.onFinish( data );
		};
	};

	 // each time we load this amount and it's IE, we must rest for a while, make it lower if you get stack overflow.
	$preload.gap = 14; 
	$preload.cache = [];
	
	$preload.defaults = {
		threshold:2, // how many images to load simultaneously
		base:'', // URL mode: a base url can be specified, it is prepended to all string urls
		ext:'', // URL mode:same as base, but it's appended after the original url.
		replace:'' // Rollover mode: replacement (can be left empty)
		/*
		enforceCache: false, // If true, the plugin will save a copy of the images in $.preload.cache
		find:null, // Rollover mode: a string or regex for the replacement
		notFound:'' // Placeholder Mode: Optional url of an image to use when the original wasn't found
		placeholder:'', // Placeholder Mode: url of an image to set while loading
		onRequest:function( data ){ ... }, // callback called every time a new url is requested
		onComplete:function( data ){ ... }, // callback called every time a response is received(successful or not)
		onFinish:function( data ){ ... } // callback called after all the images were loaded(or failed)
		*/
	};

	$.fn.preload = function( settings ){
		$preload( this, settings );
		return this;
	};

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

(function() {

var initializing = false,
    fnTest = /xyz/.test(function(){xyz;}) ? /\b__super\b/ : /.*/,
    Class = function(){},
    window = this;

Class.extend = function(prop) {
    var __super = this.prototype;
    initializing = true;
    var proto = new this();
    initializing = false;
    for (var name in prop) {
        if (name) {
            proto[name] = typeof prop[name] == "function" && 
                typeof __super[name] == "function" && fnTest.test(prop[name]) ? 
                (function(name, fn) { 
                    return function() { 
                        var tmp = this.__super; 
                        this.__super = __super[name]; 
                        var ret = fn.apply(this, arguments);       
                        this.__super = tmp; 
                        return ret; 
                    }; 
                })(name, prop[name]) : prop[name]; 
        } 
    }

    function Class() {
        if ( !initializing && this.__constructor ) {
            this.__constructor.apply(this, arguments);
        }
    }
    Class.prototype = proto;
    Class.constructor = Class;
    Class.extend = arguments.callee;
    return Class;
};

var Base = Class.extend({
    loop : function( elem, fn) {
        var scope = this;
        if (typeof elem == 'number') {
            elem = new Array(elem);
        }
        jQuery.each(elem, function() {
            fn.call(scope, arguments[1], arguments[0]);
        });
        return elem;
    },
    create : function( elem, className ) {
        elem = elem || 'div';
        var el = document.createElement(elem);
        if (className) {
            el.className = className;
        }
        return el;
    },
    getElements : function( selector ) {
        var elems = {};
        this.loop( jQuery(selector), this.proxy(function( elem ) {
            this.push(elem, elems);
        }));
        return elems;
    },
    setStyle : function( elem, css ) {
        jQuery(elem).css(css);
        return this;
    },
    getStyle : function( elem, styleProp, parse ) {
        var val = jQuery(elem).css(styleProp);
        return parse ? this.parseValue( val ) : val;
    },
    cssText : function( string ) {
        var style = document.createElement('style');
        this.getElements('head')[0].appendChild(style);
        if (style.styleSheet) { // IE
            style.styleSheet.cssText = string;
        } else {
            var cssText = document.createTextNode(string);
            style.appendChild(cssText);
        }
        return this;
    },
    touch : function(el) {
        var sibling = el.nextSibling;
        var parent = el.parentNode;
        parent.removeChild(el);
        if ( sibling ) {
            parent.insertBefore(el, sibling);
        } else {
            parent.appendChild(el);
        }
        if (el.styleSheet && el.styleSheet.imports.length) {
            this.loop(el.styleSheet.imports, function(i) {
                el.styleSheet.addImport(i.href);
            });
        }
    },
    loadCSS : function(href, callback) {
        var exists = this.getElements('link[href="'+href+'"]').length;
        if (exists) {
            callback.call(null);
            return exists[0];
        }
        var link = this.create('link');
        link.rel = 'stylesheet';
        link.href = href;
        
        if (typeof callback == 'function') {
            // a new css check method, still experimental...
            this.wait(function() {
                return !!document.body;
            }, function() {
                var testElem = this.create('div', 'galleria-container galleria-stage');
                this.moveOut(testElem);
                document.body.appendChild(testElem);
                var getStyles = this.proxy(function() {
                    var str = '';
                    var props;
                    if (document.defaultView && document.defaultView.getComputedStyle) {
                        props = document.defaultView.getComputedStyle(testElem, "");
                        this.loop(props, function(prop) {
                            str += prop + props.getPropertyValue(prop);
                        });
                    } else if (testElem.currentStyle) { // IE
                        props = testElem.currentStyle;
                        this.loop(props, function(val, prop) {
                            str += prop + val;
                        });
                    }
                    return str;
                });
                var current = getStyles();
                this.wait(function() {
                    return getStyles() !== current;
                }, function() {
                    document.body.removeChild(testElem);
                    callback.call(link);
                }, function() {
                    G.raise('Could not confirm theme CSS');
                }, 2000);
            });
        }
        window.setTimeout(this.proxy(function() {
            var styles = this.getElements('link[rel="stylesheet"],style');
            if (styles.length) {
                styles[0].parentNode.insertBefore(link, styles[0]);
            } else {
                this.getElements('head')[0].appendChild(link);
            }
            // IE needs a manual touch to re-order the cascade
            if (G.IE) {
                this.loop(styles, function(el) {
                    this.touch(el);
                })
            }
        }), 2);
        return link;
    },
    moveOut : function( elem ) {
        return this.setStyle(elem, {
            position: 'absolute',
            left: '-10000px',
            display: 'block'
        });
    },
    moveIn : function( elem ) {
        return this.setStyle(elem, {
            left: '0'
        }); 
    },
    reveal : function( elem ) {
        return jQuery( elem ).show();
    },
    hide : function( elem ) {
        return jQuery( elem ).hide();
    },
    mix : function() {
        return jQuery.extend.apply(jQuery, arguments);
    },
    proxy : function( fn, scope ) {
        if ( typeof fn !== 'function' ) {
            return function() {};
        }
        scope = scope || this;
        return function() {
            return fn.apply( scope, Array.prototype.slice.call(arguments) );
        };
    },
    listen : function( elem, type, fn ) {
        jQuery(elem).bind( type, fn );
    },
    forget : function( elem, type, fn ) {
        jQuery(elem).unbind(type, fn);
    },
    dispatch : function( elem, type ) {
        jQuery(elem).trigger(type);
    },
    clone : function( elem, keepEvents ) {
        keepEvents = keepEvents || false;
        return jQuery(elem).clone(keepEvents)[0];
    },
    removeAttr : function( elem, attributes ) {
        this.loop( attributes.split(' '), function(attr) {
            jQuery(elem).removeAttr(attr);
        });
    },
    push : function( elem, obj ) {
        if (typeof obj.length == 'undefined') {
            obj.length = 0;
        }
        Array.prototype.push.call( obj, elem );
        return elem;
    },
    width : function( elem, outer ) {
        return this.meassure(elem, outer, 'Width');
    },
    height : function( elem, outer ) {
        return this.meassure(elem, outer, 'Height');
    },
    meassure : function(el, outer, meassure) {
        var elem = jQuery( el );
        var ret = outer ? elem['outer'+meassure](true) : elem[meassure.toLowerCase()]();
        // fix quirks mode
        if (G.QUIRK) {
            var which = meassure == "Width" ? [ "left", "right" ] : [ "top", "bottom" ];
            this.loop(which, function(s) {
                ret += elem.css('border-' + s + '-width').replace(/[^\d]/g,'') * 1;
                ret += elem.css('padding-' + s).replace(/[^\d]/g,'') * 1;
            });
        }
        return ret;
    },
    toggleClass : function( elem, className, arg ) {
        if (typeof arg !== 'undefined') {
            var fn = arg ? 'addClass' : 'removeClass';
            jQuery(elem)[fn](className);
            return this;
        }
        jQuery(elem).toggleClass(className);
        return this;
    },
    hideAll : function( el ) {
        jQuery(el).find('*').hide();
    },
    animate : function( el, options ) {
        options.complete = this.proxy(options.complete);
        var elem = jQuery(el);
        if (!elem.length) {
            return;
        }
        if (options.from) {
            elem.css(from);
        }
        elem.animate(options.to, {
            duration: options.duration || 400,
            complete: options.complete,
            easing: options.easing || 'swing'
        });
    },
    wait : function(fn, callback, err, max) {
        fn = this.proxy(fn);
        callback = this.proxy(callback);
        err = this.proxy(err);
        var ts = new Date().getTime() + (max || 3000);
        window.setTimeout(function() {
            if (fn()) {
                callback();
                return false;
            }
            if (new Date().getTime() >= ts) {
                err();
                callback();
                return false;
            }
            window.setTimeout(arguments.callee, 2);
        }, 2);
        return this;
    },
    loadScript: function(url, callback) {
       var script = document.createElement('script');
       script.src = url;
       script.async = true; // HTML5

       var done = false;
       var scope = this;

       // Attach handlers for all browsers
       script.onload = script.onreadystatechange = function() {
           if ( !done && (!this.readyState ||
               this.readyState == "loaded" || this.readyState == "complete") ) {
               done = true;
               
               if (typeof callback == 'function') {
                   callback.call(scope, this);
               }

               // Handle memory leak in IE
               script.onload = script.onreadystatechange = null;
           }
       };
       var s = document.getElementsByTagName('script')[0];
       s.parentNode.insertBefore(script, s);
       
       return this;
    },
    parseValue: function(val) {
        if (typeof val == 'number') {
            return val;
        } else if (typeof val == 'string') {
            var arr = val.match(/\-?\d/g);
            return arr && arr.constructor == Array ? arr.join('')*1 : 0;
        } else {
            return 0;
        }
    }
});

var Picture = Base.extend({
    __constructor : function(order) {
        this.image = null;
        this.elem = this.create('div', 'galleria-image');
        this.setStyle( this.elem, {
            overflow: 'hidden',
            position: 'relative' // for IE Standards mode
        } );
        this.order = order;
        this.orig = { w:0, h:0, r:1 };
    },
    
    cache: {},
    ready: false,
    
    add: function(src) {
        if (this.cache[src]) {
            return this.cache[src];
        }
        var image = new Image();
        image.src = src;
        this.setStyle(image, {display: 'block'});
        if (image.complete && image.width) {
            this.cache[src] = image;
            return image;
        }
        image.onload = (function(scope) {
            return function() {
                scope.cache[src] = image;
            };
        })(this);
        return image;
    },
    
    isCached: function(src) {
        return this.cache[src] ? this.cache[src].complete : false;
    },
    
    make: function(src) {
        var i = this.cache[src] || this.add(src);
        return this.clone(i);
    },
    
    load: function(src, callback) {
        callback = this.proxy( callback );
        this.elem.innerHTML = '';
        this.image = this.make( src );
        this.moveOut( this.image );
        this.elem.appendChild( this.image );
        this.wait(function() {
            return (this.image.complete && this.image.width);
        }, function() {
            this.orig = {
                h: this.h || this.image.height,
                w: this.w || this.image.width
            };
            callback( {target: this.image, scope: this} );
        }, function() {
            G.raise('image not loaded in 20 seconds: '+ src);
        }, 20000);
        return this;
    },
    
    scale: function(options) {
        var o = this.mix({
            width: 0,
            height: 0,
            min: undefined,
            max: undefined,
            margin: 0,
            complete: function(){},
            position: 'center',
            crop: false
        }, options);
        if (!this.image) {
            return this;
        }
        var width,height;
        this.wait(function() {
            width  = o.width || this.width(this.elem);
            height = o.height || this.height(this.elem);
            return width && height;
        }, function() {
            var nw = (width - o.margin*2) / this.orig.w;
            var nh = (height- o.margin*2) / this.orig.h;
            var rmap = {
                'true': Math.max(nw,nh),
                'width': nw,
                'height': nh,
                'false': Math.min(nw,nh)
            }
            var ratio = rmap[o.crop.toString()];
            if (o.max) {
                ratio = Math.min(o.max, ratio);
            }
            if (o.min) {
                ratio = Math.max(o.min, ratio);
            }
            this.setStyle(this.elem, {
                width: width,
                height: height
            });
            this.image.width = Math.ceil(this.orig.w * ratio);
            this.image.height = Math.ceil(this.orig.h * ratio);
            
            var getPosition = this.proxy(function(value, img, m) {
                var result = 0;
                if (/\%/.test(value)) {
                    var pos = parseInt(value) / 100;
                    result = Math.ceil(this.image[img] * -1 * pos + m * pos);
                } else {
                    result = parseInt(value);
                }
                return result;
            });
            
            var map = {
                'top': { top: 0 },
                'left': { left: 0 },
                'right': { left: '100%' },
                'bottom': { top: '100%' }
            }
            
            var pos = {};
            var mix = {};
            
            this.loop(o.position.toLowerCase().split(' '), function(p, i) {
                if (p == 'center') {
                    p = '50%';
                }
                pos[i ? 'top' : 'left'] = p;
            });

            this.loop(pos, function(val, key) {
                if (map.hasOwnProperty(val)) {
                    mix = this.mix(mix, map[val]);
                }
            });
            
            pos = pos.top ? this.mix(pos, mix) : mix;
            
            pos = this.mix({
                top: '50%',
                left: '50%'
            }, pos);

            this.setStyle(this.image, {
                position : 'relative',
                top :  getPosition(pos.top, 'height', height),
                left : getPosition(pos.left, 'width', width)
            });
            this.ready = true;
            o.complete.call(this);
        });
        return this;
    }
});

var G = window.Galleria = Base.extend({
    
    __constructor : function(options) {
        this.theme = undefined;
        this.options = options;
        this.playing = false;
        this.playtime = 5000;
        this.active = null;
        this.queue = {};
        this.data = {};
        this.dom = {};
        
        var kb = this.keyboard = {
            keys : {
                UP: 38,
                DOWN: 40,
                LEFT: 37,
                RIGHT: 39,
                RETURN: 13,
                ESCAPE: 27,
                BACKSPACE: 8
            },
            map : {},
            bound: false,
            press: this.proxy(function(e) {
                var key = e.keyCode || e.which;
                if (kb.map[key] && typeof kb.map[key] == 'function') {
                    kb.map[key].call(this, e);
                }
            }),
            attach: this.proxy(function(map) {
                for( var i in map ) {
                    var k = i.toUpperCase();
                    if ( kb.keys[k] ) {
                        kb.map[kb.keys[k]] = map[i];
                    }
                }
                if (!kb.bound) {
                    kb.bound = true;
                    this.listen(document, 'keydown', kb.press);
                }
            }),
            detach: this.proxy(function() {
                kb.bound = false;
                this.forget(document, 'keydown', kb.press);
            })
        };
        
        this.timeouts = {
            trunk: {},
            add: function(id, fn, delay, loop) {
                loop = loop || false;
                this.clear(id);
                if (loop) {
                    var self = this;
                    var old = fn;
                    fn = function() {
                        old();
                        self.add(id,fn,delay);
                    }
                }
                this.trunk[id] = window.setTimeout(fn,delay);
            },
            clear: function(id) {
                if (id && this.trunk[id]) {
                    window.clearTimeout(this.trunk[id]);
                    delete this.trunk[id];
                } else if (typeof id == 'undefined') {
                    for (var i in this.trunk) {
                        window.clearTimeout(this.trunk[i]);
                        delete this.trunk[i];
                    }
                }
            }
        };
        
        this.controls = {
            0 : null,
            1 : null,
            active : 0,
            swap : function() {
                this.active = this.active ? 0 : 1;
            },
            getActive : function() {
                return this[this.active];
            },
            getNext : function() {
                return this[Math.abs(this.active - 1)];
            }
        };
        
        var fs = this.fullscreen = {
            scrolled: 0,
            enter: this.proxy(function() {
                this.toggleClass( this.get('container'), 'fullscreen');
                fs.scrolled = jQuery(window).scrollTop();
                this.loop(fs.getElements(), function(el, i) {
                    fs.styles[i] = el.getAttribute('style');
                    el.removeAttribute('style');
                });
                this.setStyle(fs.getElements(0), {
                    position: 'fixed',
                    top: 0,
                    left: 0,
                    width: '100%',
                    height: '100%',
                    zIndex: 10000
                });
                var bh = {
                    height: '100%',
                    overflow: 'hidden',
                    margin:0,
                    padding:0
                };
                this.setStyle( fs.getElements(1), bh );
                this.setStyle( fs.getElements(2), bh );
                this.attachKeyboard({
                    escape: this.exitFullscreen,
                    right: this.next,
                    left: this.prev
                });
                this.rescale(this.proxy(function() {
                    this.trigger(G.FULLSCREEN_ENTER);
                }));
                this.listen(window, 'resize', fs.scale);
            }),
            scale: this.proxy(function() {
                this.rescale();
            }),
            exit: this.proxy(function() {
                this.toggleClass( this.get('container'), 'fullscreen', false);
                if (!fs.styles.length) {
                    return;
                }
                this.loop(fs.getElements(), function(el, i) {
                    el.removeAttribute('style');
                    el.setAttribute('style', fs.styles[i]);
                });
                window.scrollTo(0, fs.scrolled);
                this.detachKeyboard();
                this.rescale(this.proxy(function() {
                    this.trigger(G.FULLSCREEN_EXIT);
                }));
                this.forget(window, 'resize', fs.scale);
            }),
            styles: [],
            getElements: this.proxy(function(i) {
                var elems = [ this.get('container'), document.body, this.getElements('html')[0] ];
                return i ? elems[i] : elems;
            })
        };
        
        var idle = this.idle = {
            trunk: [],
            bound: false,
            add: this.proxy(function(elem, styles, fn) {
                if (!elem) {
                    return;
                }
                if (!idle.bound) {
                    idle.addEvent();
                }
                elem = jQuery(elem);
                var orig = {};
                for (var style in styles) {
                    orig[style] = elem.css(style);
                }
                elem.data('idle', {
                    from: orig,
                    to: styles,
                    complete: true,
                    busy: false,
                    fn: this.proxy(fn)
                });
                idle.addTimer();
                idle.trunk.push(elem);
            }),
            remove: this.proxy(function(elem) {
                elem = jQuery(elem);
                this.loop(idle.trunk, function(el, i) {
                    if ( el && !el.not(elem).length ) {
                        idle.show(elem);
                        idle.trunk.splice(i,1);
                    }
                });
                if (!idle.trunk.length) {
                    idle.removeEvent();
                    this.clearTimer('idle');
                }
            }),
            addEvent: this.proxy(function() {
                idle.bound = true;
                this.listen( this.get('container'), 'mousemove click', idle.showAll );
            }),
            removeEvent: this.proxy(function() {
                idle.bound = false;
                this.forget( this.get('container'), 'mousemove click', idle.showAll );
            }),
            addTimer: this.proxy(function() {
                this.addTimer('idle', this.proxy(function() {
                    idle.hide();
                }),this.options.idle_time);
            }),
            hide: this.proxy(function() {
                this.trigger(G.IDLE_ENTER);
                this.loop(idle.trunk, function(elem) {
                    var data = elem.data('idle');
                    data.complete = false;
                    data.fn();
                    elem.animate(data.to, {
                        duration: 600,
                        queue: false,
                        easing: 'swing'
                    });
                });
            }),
            showAll: this.proxy(function() {
                this.clearTimer('idle');
                this.loop(idle.trunk, function(elem) {
                    idle.show(elem);
                });
            }),
            show: this.proxy(function(elem) {
                var data = elem.data('idle');
                if (!data.busy && !data.complete) {
                    data.busy = true;
                    this.trigger(G.IDLE_EXIT);
                    elem.animate(data.from, {
                        duration: 300,
                        queue: false,
                        easing: 'swing',
                        complete: function() {
                            $(this).data('idle').busy = false;
                            $(this).data('idle').complete = true;
                        }
                    });
                }
                idle.addTimer();
            })
        };
        
        var lightbox = this.lightbox = {
            w: 0,
            h: 0,
            initialized: false,
            active: null,
            init: this.proxy(function() {
                if (lightbox.initialized) {
                    return;
                }
                lightbox.initialized = true;
                var elems = 'lightbox-overlay lightbox-box lightbox-content lightbox-shadow lightbox-title ' +
                            'lightbox-info lightbox-close lightbox-prev lightbox-next lightbox-counter';
                this.loop(elems.split(' '), function(el) {
                    this.addElement(el);
                    lightbox[el.split('-')[1]] = this.get(el);
                });
                
                lightbox.image = new Galleria.Picture();
                
                this.append({
                    'lightbox-box': ['lightbox-shadow','lightbox-content', 'lightbox-close'],
                    'lightbox-info': ['lightbox-title','lightbox-counter','lightbox-next','lightbox-prev'],
                    'lightbox-content': ['lightbox-info']
                });
                document.body.appendChild( lightbox.overlay );
                document.body.appendChild( lightbox.box );
                lightbox.content.appendChild( lightbox.image.elem );
                
                lightbox.close.innerHTML = '&#215;';
                lightbox.prev.innerHTML = '&#9668;';
                lightbox.next.innerHTML = '&#9658;';
                
                this.listen( lightbox.close, 'click', lightbox.hide );
                this.listen( lightbox.overlay, 'click', lightbox.hide );
                this.listen( lightbox.next, 'click', lightbox.showNext );
                this.listen( lightbox.prev, 'click', lightbox.showPrev );
                
                if (this.options.lightbox_clicknext) {
                    this.setStyle( lightbox.image.elem, {cursor:'pointer'} );
                    this.listen( lightbox.image.elem, 'click', lightbox.showNext);
                }
                this.setStyle( lightbox.overlay, {
                    position: 'fixed', display: 'none',
                    opacity: this.options.overlay_opacity,
                    top: 0, left: 0, width: '100%', height: '100%',
                    background: this.options.overlay_background, zIndex: 99990
                });
                this.setStyle( lightbox.box, {
                    position: 'fixed', display: 'none',
                    width: 400, height: 400, top: '50%', left: '50%',
                    marginTop: -200, marginLeft: -200, zIndex: 99991
                });
                this.setStyle( lightbox.shadow, {
                    background:'#000', opacity:.4, width: '100%', height: '100%', position: 'absolute'
                });
                this.setStyle( lightbox.content, {
                    backgroundColor:'#fff',position: 'absolute',
                    top: 10, left: 10, right: 10, bottom: 10, overflow: 'hidden'
                });
                this.setStyle( lightbox.info, {
                    color: '#444', fontSize: '11px', fontFamily: 'arial,sans-serif', height: 13, lineHeight: '13px',
                    position: 'absolute', bottom: 10, left: 10, right: 10, opacity: 0
                });
                this.setStyle( lightbox.close, {
                    background: '#fff', height: 20, width: 20, position: 'absolute', textAlign: 'center', cursor: 'pointer',
                    top: 10, right: 10, lineHeight: '22px', fontSize: '16px', fontFamily:'arial,sans-serif',color:'#444', zIndex: 99999
                });
                this.setStyle( lightbox.image.elem, {
                    top: 10, left: 10, right: 10, bottom: 30, position: 'absolute'
                });
                this.loop('title prev next counter'.split(' '), function(el) {
                    var css = { display: 'inline', 'float':'left' };
                    if (el != 'title') {
                        this.mix(css, { 'float': 'right'});
                        if (el != 'counter') {
                            this.mix(css, { cursor: 'pointer'});
                        } else {
                            this.mix(css, { marginLeft: 8 });
                        }
                    }
                    this.setStyle(lightbox[el], css);
                });
                this.loop('prev next close'.split(' '), function(el) {
                    this.listen(lightbox[el], 'mouseover', this.proxy(function() {
                        this.setStyle(lightbox[el], { color:'#000' });
                    }));
                    this.listen(lightbox[el], 'mouseout', this.proxy(function() {
                        this.setStyle(lightbox[el], { color:'#444' });
                    }));
                });
                this.trigger(G.LIGHTBOX_OPEN);
            }),
            rescale: this.proxy(function(e) {
                var w = Math.min( this.width(window), lightbox.w );
                var h = Math.min( this.height(window), lightbox.h );
                var r = Math.min( (w-60) / lightbox.w, (h-80) / lightbox.h );
                var destW = (lightbox.w * r) + 40;
                var destH = (lightbox.h * r) + 60;
                var dest = {
                    width: destW,
                    height: destH,
                    marginTop: Math.ceil(destH/2)*-1,
                    marginLeft: Math.ceil(destW)/2*-1
                }
                if (!e) {
                    this.animate( lightbox.box, {
                        to: dest,
                        duration: this.options.lightbox_transition_speed,
                        easing: 'galleria',
                        complete: function() {
                            this.trigger({
                                type: G.LIGHTBOX_IMAGE,
                                imageTarget: lightbox.image.image
                            });
                            this.moveIn( lightbox.image.image );
                            this.animate( lightbox.image.image, { to: { opacity:1 }, duration: this.options.lightbox_fade_speed } );
                            this.animate( lightbox.info, { to: { opacity:1 }, duration: this.options.lightbox_fade_speed } );
                        }
                    });
                } else {
                    this.setStyle( lightbox.box, dest );
                }
            }),
            hide: this.proxy(function() {
                lightbox.image.image = null;
                this.forget(window, 'resize', lightbox.rescale);
                this.hide( lightbox.box );
                this.setStyle( lightbox.info, { opacity: 0 } );
                this.animate( lightbox.overlay, {
                    to: { opacity: 0 },
                    duration: 200,
                    complete: function() {
                        this.hide( lightbox.overlay );
                        this.setStyle( lightbox.overlay, { opacity: this.options.overlay_opacity});
                        this.trigger(G.LIGHTBOX_CLOSE);
                    }
                });
            }),
            showNext: this.proxy(function() {
                lightbox.show(this.getNext(lightbox.active));
            }),
            showPrev: this.proxy(function() {
                lightbox.show(this.getPrev(lightbox.active));
            }),
            show: this.proxy(function(index) {
                if (!lightbox.initialized) {
                    lightbox.init();
                }
                this.forget( window, 'resize', lightbox.rescale );
                index = typeof index == 'number' ? index : this.getIndex();
                lightbox.active = index;
                
                var data = this.getData(index);
                var total = this.data.length;
                this.setStyle( lightbox.info, {opacity:0} );

                lightbox.image.load( data.image, function(o) {
                    lightbox.w = o.scope.orig.w;
                    lightbox.h = o.scope.orig.h;
                    this.setStyle(o.target, {
                        width: '100.5%',
                        height: '100.5%',
                        top:0,
                        zIndex: 99998,
                        opacity: 0
                    });
                    lightbox.title.innerHTML = data.title;
                    lightbox.counter.innerHTML = (index+1) + ' / ' + total;
                    this.listen( window, 'resize', lightbox.rescale );
                    lightbox.rescale();
                });
                this.reveal( lightbox.overlay );
                this.reveal( lightbox.box );
            })
        };
        
        this.thumbnails = { width: 0 };
        this.stageWidth = 0;
        this.stageHeight = 0;
        
        var elems = 'container stage images image-nav image-nav-left image-nav-right ' + 
                    'info info-text info-title info-description info-author ' +
                    'thumbnails thumbnails-list thumbnails-container thumb-nav-left thumb-nav-right ' +
                    'loader counter';
        elems = elems.split(' ');
        
        this.loop(elems, function(blueprint) {
            this.dom[ blueprint ] = this.create('div', 'galleria-' + blueprint);
        });
        
        this.target = this.dom.target = options.target.nodeName ? 
            options.target : this.getElements(options.target)[0];

        if (!this.target) {
             G.raise('Target not found.');
        }
    },
    
    init: function() {
        
        this.options = this.mix(G.theme.defaults, this.options);
        this.options = this.mix({
            autoplay: false,
            carousel: true,
            carousel_follow: true,
            carousel_speed: 400,
            carousel_steps: 'auto',
            clicknext: false,
            data_config : function( elem ) { return {}; },
            data_image_selector: 'img',
            data_source: this.target,
            data_type: 'auto',
            debug: false,
            extend: function(options) {},
            height: 'auto',
            idle_time: 3000,
            image_crop: false,
            image_margin: 0,
            image_pan: false,
            image_pan_smoothness: 12,
            image_position: '50%',
            keep_source: false,
            lightbox_clicknext: true,
            lightbox_fade_speed: 200,
            lightbox_transition_speed: 300,
            link_source_images: true,
            max_scale_ratio: undefined,
            min_scale_ratio: undefined,
            on_image: function(img,thumb) {},
            overlay_opacity: .85,
            overlay_background: '#0b0b0b',
            popup_links: false,
            preload: 2,
            queue: true,
            show: 0,
            show_info: true,
            show_counter: true,
            show_imagenav: true,
            thumb_crop: true,
            thumb_fit: true,
            thumb_margin: 0,
            thumb_quality: 'auto',
            thumbnails: true,
            transition: G.transitions.fade,
            transition_speed: 400
        }, this.options);
        
        var o = this.options;
        
        this.bind(G.DATA, function() {
            this.run();
        });
        
        if (o.clicknext) {
            this.loop(this.data, function(data) {
                delete data.link;
            });
            this.setStyle(this.get('stage'), { cursor: 'pointer'} );
            this.listen(this.get('stage'), 'click', this.proxy(function() {
                this.next();
            }));
        }
        
        this.bind(G.IMAGE, function(e) {
            o.on_image.call(this, e.imageTarget, e.thumbTarget);
        });
        
        this.bind(G.READY, function() {
            if (G.History) {
                G.History.change(this.proxy(function(e) {
                    var val = parseInt(e.value.replace(/\//,''));
                    if (isNaN(val)) {
                        window.history.go(-1);
                    } else {
                        this.show(val, undefined, true);
                    }
                }));
            }

            G.theme.init.call(this, o);
            o.extend.call(this, o);
            
            if (/^[0-9]{1,4}$/.test(hash) && G.History) {
                this.show(hash, undefined, true);
            } else if (typeof o.show == 'number') {
                this.show(o.show);
            }
            
            if (o.autoplay) {
                if (typeof o.autoplay == 'number') {
                    this.playtime = o.autoplay;
                }
                this.trigger( G.PLAY );
                this.playing = true;
            }
        });
        this.load();
        return this;
    },
    
    bind : function(type, fn) {
        this.listen( this.get('container'), type, this.proxy(fn) );
        return this;
    },
    
    unbind : function(type) {
        this.forget( this.get('container'), type );
    },
    
    trigger : function( type ) {
        type = typeof type == 'object' ? 
            this.mix( type, { scope: this } ) : 
            { type: type, scope: this };
        this.dispatch( this.get('container'), type );
        return this;
    },
    
    addIdleState: function() {
        this.idle.add.apply(this, arguments);
        return this;
    },
    
    removeIdleState: function() {
        this.idle.remove.apply(this, arguments);
        return this;
    },
    
    enterIdleMode: function() {
        this.idle.hide();
        return this;
    },
    
    exitIdleMode: function() {
        this.idle.show();
        return this;
    },
    
    addTimer: function() {
        this.timeouts.add.apply(this.timeouts, arguments);
        return this;
    },
    
    clearTimer: function() {
        this.timeouts.clear.apply(this.timeouts, arguments);
        return this;
    },
    
    enterFullscreen: function() {
        this.fullscreen.enter.apply(this, arguments);
        return this;
    },
    
    exitFullscreen: function() {
        this.fullscreen.exit.apply(this, arguments);
        return this;
    },
    
    openLightbox: function() {
        this.lightbox.show.apply(this, arguments);
    },
    
    closeLightbox: function() {
        this.lightbox.hide.apply(this, arguments);
    },
    
    getActive: function() {
        return this.controls.getActive();
    },
    
    getActiveImage: function() {
        return this.getActive().image || null;
    },
    
    run : function() {
        var o = this.options;
        if (!this.data.length) {
            G.raise('Data is empty.');
        }
        if (!o.keep_source && !Galleria.IE) {
            this.target.innerHTML = '';
        }
        this.loop(2, function() {
            var image = new Picture();
            this.setStyle( image.elem, {
                position: 'absolute',
                top: 0,
                left: 0
            });
            this.setStyle(this.get( 'images' ), {
                position: 'relative',
                top: 0,
                left: 0,
                width: '100%',
                height: '100%'
            });
            this.get( 'images' ).appendChild( image.elem );
            this.push(image, this.controls);
        }, this);
        
        if (o.carousel) {
            // try the carousel on each thumb load
            this.bind(G.THUMBNAIL, this.parseCarousel);
        }
        
        this.build();
        this.target.appendChild(this.get('container'));
        
        this.loop(['info','counter','image-nav'], function(el) {
            if ( o[ 'show_'+el.replace(/-/,'') ] === false ) {
                this.moveOut( this.get(el) );
            }
        });
        
        var w = 0;
        var h = 0;
        
        for( var i=0; this.data[i]; i++ ) {
            var thumb;
            if (o.thumbnails === true) {
                thumb = new Picture(i);
                var src = this.data[i].thumb || this.data[i].image;
                
                this.get( 'thumbnails' ).appendChild( thumb.elem );
                
                w = this.getStyle(thumb.elem, 'width', true);
                h = this.getStyle(thumb.elem, 'height', true);
                
                // grab & reset size for smoother thumbnail loads
                if (o.thumb_fit && o.thum_crop !== true) {
                    this.setStyle(thumb.elem, { width:0, height: 0});
                }
                
                thumb.load(src, this.proxy(function(e) {
                    var orig = e.target.width;
                    e.scope.scale({
                        width: w,
                        height: h,
                        crop: o.thumb_crop,
                        margin: o.thumb_margin,
                        complete: this.proxy(function() {
                            // shrink thumbnails to fit
                            var top = ['left', 'top'];
                            var arr = ['Height', 'Width'];
                            this.loop(arr, function(m,i) {
                                if ((!o.thumb_crop || o.thumb_crop == m.toLowerCase()) && o.thumb_fit) {
                                    var css = {};
                                    var opp = arr[Math.abs(i-1)].toLowerCase();
                                    css[opp] = e.target[opp];
                                    this.setStyle(e.target.parentNode, css);
                                    var css = {};
                                    css[top[i]] = 0;
                                    this.setStyle(e.target, css);
                                }
                                e.scope['outer'+m] = this[m.toLowerCase()](e.target.parentNode, true);
                            });
                            // set high quality if downscale is moderate
                            this.toggleQuality(e.target, o.thumb_quality === true || ( o.thumb_quality == 'auto' && orig < e.target.width * 3 ));
                            this.trigger({
                                type: G.THUMBNAIL,
                                thumbTarget: e.target,
                                thumbOrder: e.scope.order
                            });
                        })
                    });
                }));
                if (o.preload == 'all') {
                    thumb.add(this.data[i].image);
                }
            } else if (o.thumbnails == 'empty') {
                thumb = {
                    elem:  this.create('div','galleria-image'),
                    image: this.create('span','img')
                };
                thumb.elem.appendChild(thumb.image);
                this.get( 'thumbnails' ).appendChild( thumb.elem );
            } else {
                thumb = {
                    elem: false,
                    image: false
                }
            }
            var activate = this.proxy(function(e) {
                this.pause();
                e.preventDefault();
                var ind = e.currentTarget.rel;
                if (this.active !== ind) {
                    this.show( ind );
                }
            });
            if (o.thumbnails !== false) {
                thumb.elem.rel = i;
                this.listen(thumb.elem, 'click', activate);
            }
            if (o.link_source_images && o.keep_source && this.data[i].elem) {
                this.data[i].elem.rel = i;
                this.listen(this.data[i].elem, 'click', activate);
            }
            this.push(thumb, this.thumbnails );
        }
        this.setStyle( this.get('thumbnails'), { opacity: 0 } );
        
        if (o.height && o.height != 'auto') {
            this.setStyle( this.get('container'), { height: o.height })
        }
        
        this.wait(function() {
            // the most sensitive piece of code in Galleria, we need to have all the meassurements right to continue
            var cssHeight = this.getStyle( this.get( 'container' ), 'height', true );
            this.stageWidth = this.width(this.get( 'stage' ));
            this.stageHeight = this.height( this.get( 'stage' ));
            if (this.stageHeight < 50 && o.height == 'auto') {
                // no height detected for sure, set reasonable ratio (16/9)
                this.setStyle( this.get( 'container' ),  { 
                    height: Math.round( this.stageWidth*9/16 ) 
                } );
                this.stageHeight = this.height( this.get( 'stage' ));
            }
            return this.stageHeight && this.stageWidth;
        }, function() {
            this.listen(this.get('image-nav-right'), 'click', this.proxy(function(e) {
                if (o.clicknext) {
                    e.stopPropagation();
                }
                this.pause();
                this.next();
            }));
            this.listen(this.get('image-nav-left'), 'click', this.proxy(function(e) {
                if (o.clicknext) {
                    e.stopPropagation();
                }
                this.pause();
                this.prev();
            }));
            this.setStyle( this.get('thumbnails'), { opacity: 1 } );
            this.trigger( G.READY );
        }, function() {
            G.raise('Galleria could not load properly. Make sure stage has a height and width.');
        }, 5000);
    },
    
    mousePosition : function(e) {
        return {
            x: e.pageX - this.$('stage').offset().left + jQuery(document).scrollLeft(),
            y: e.pageY - this.$('stage').offset().top + jQuery(document).scrollTop()
        };
    },
    
    addPan : function(img) {
        var c = this.options.image_crop;
        if ( c === false ) {
            return;
        }
        if (this.options.image_crop === false) {
            return;
        }
        img = img || this.controls.getActive().image;
        if (img.tagName.toUpperCase() != 'IMG') {
            G.raise('Could not add pan');
        }
        
        var x = img.width/2;
        var y = img.height/2;
        var curX = destX = this.getStyle(img, 'left', true) || 0;
        var curY = destY = this.getStyle(img, 'top', true) || 0;
        var distX = 0;
        var distY = 0;
        var active = false;
        var ts = new Date().getTime();
        var calc = this.proxy(function(e) {
            if (new Date().getTime() - ts < 50) {
                return;
            }
            active = true;
            x = this.mousePosition(e).x;
            y = this.mousePosition(e).y;
        });
        var loop = this.proxy(function(e) {
            if (!active) {
                return;
            }
            distX = img.width - this.stageWidth;
            distY = img.height - this.stageHeight;
            destX = x / this.stageWidth * distX * -1;
            destY = y / this.stageHeight * distY * -1;
            curX += (destX - curX) / this.options.image_pan_smoothness;
            curY += (destY - curY) / this.options.image_pan_smoothness;
            if (distY > 0) {
                this.setStyle(img, { top: Math.max(distY*-1, Math.min(0, curY)) });
            }
            if (distX > 0) {
                this.setStyle(img, { left: Math.max(distX*-1, Math.min(0, curX)) });
            }
        });
        this.forget(this.get('stage'), 'mousemove');
        this.listen(this.get('stage'), 'mousemove', calc);
        this.addTimer('pan', loop, 30, true);
    },
    
    removePan: function() {
        this.forget(this.get('stage'), 'mousemove');
        this.clearTimer('pan');
    },
    
    parseCarousel : function(e) {
        var w = 0;
        var h = 0;
        var hooks = [0];
        this.loop(this.thumbnails, function(thumb,i) {
            if (thumb.ready) {
                w += thumb.outerWidth || this.width(thumb.elem, true);
                hooks[i+1] = w;
                h = Math.max(h, this.height(thumb.elem));
            }
        });
        this.toggleClass(this.get('thumbnails-container'), 'galleria-carousel', w > this.stageWidth);
        this.setStyle(this.get('thumbnails-list'), {
            overflow:'hidden',
            position: 'relative' // for IE Standards mode
        });
        this.setStyle(this.get('thumbnails'), {
            width: w,
            height: h,
            position: 'relative',
            overflow: 'hidden'
        });
        if (!this.carousel) {
            this.initCarousel();
        }
        this.carousel.max = w;
        this.carousel.hooks = hooks;
        this.carousel.width = this.width(this.get('thumbnails-list'));
        this.carousel.setClasses();
    },
    
    initCarousel : function() {
        var c = this.carousel = {
            right: this.get('thumb-nav-right'),
            left: this.get('thumb-nav-left'),
            update: this.proxy(function() {
                this.parseCarousel();
                // todo: fix so the carousel moves to the left
            }),
            width: 0,
            current: 0,
            set: function(i) {
                i = Math.max(i,0);
                while (c.hooks[i-1] + c.width > c.max && i >= 0) {
                    i--;
                }
                c.current = i;
                c.animate();
            },
            hooks: [],
            getLast: function(i) {
                i = i || c.current
                
                return i-1;
            },
            follow: function(i) {
                if (i == 0 || i == c.hooks.length-2) {
                    c.set(i);
                    return;
                }
                var last = c.current;
                while(c.hooks[last] - c.hooks[c.current] < c.width && last<= c.hooks.length) {
                    last++;
                }
                if (i-1 < c.current) {
                    c.set(i-1)
                } else if (i+2 > last) {
                    c.set(i - last + c.current + 2)
                }
            },
            max: 0,
            setClasses: this.proxy(function() {
                this.toggleClass( c.left, 'disabled', !c.current );
                this.toggleClass( c.right, 'disabled', c.hooks[c.current] + c.width > c.max );
            }),
            animate: this.proxy(function(to) {
                c.setClasses();
                this.animate( this.get('thumbnails'), {
                    to: { left: c.hooks[c.current] * -1 },
                    duration: this.options.carousel_speed,
                    easing: 'galleria',
                    queue: false
                });
            })
        };
        this.listen(c.right, 'click', this.proxy(function(e) {
            if (this.options.carousel_steps == 'auto') {
                for (var i = c.current; i<c.hooks.length; i++) {
                    if (c.hooks[i] - c.hooks[c.current] > c.width) {
                        c.set(i-2);
                        break;
                    }
                }
            } else {
                c.set(c.current + this.options.carousel_steps);
            }
        }));
        this.listen(c.left, 'click', this.proxy(function(e) {
            if (this.options.carousel_steps == 'auto') {
                for (var i = c.current; i>=0; i--) {
                    if (c.hooks[c.current] - c.hooks[i] > c.width) {
                        c.set(i+2);
                        break;
                    } else if (i == 0) {
                        c.set(0);
                        break;
                    }
                }
            } else {
                c.set(c.current - this.options.carousel_steps);
            }
        }));
    },
    addElement : function() {
        this.loop(arguments, function(b) {
            this.dom[b] = this.create('div', 'galleria-' + b );
        });
        return this;
    },
    getDimensions: function(i) {
        return {
            w: i.width,
            h: i.height,
            cw: this.stageWidth,
            ch: this.stageHeight,
            top: (this.stageHeight - i.height) / 2,
            left: (this.stageWidth - i.width) / 2
        };
    },
    attachKeyboard : function(map) {
        this.keyboard.attach(map);
        return this;
    },
    detachKeyboard : function() {
        this.keyboard.detach();
        return this;
    },
    build : function() {
        this.append({
            'info-text' :
                ['info-title', 'info-description', 'info-author'],
            'info' : 
                ['info-text'],
            'image-nav' : 
                ['image-nav-right', 'image-nav-left'],
            'stage' : 
                ['images', 'loader', 'counter', 'image-nav'],
            'thumbnails-list' :
                ['thumbnails'],
            'thumbnails-container' : 
                ['thumb-nav-left', 'thumbnails-list', 'thumb-nav-right'],
            'container' : 
                ['stage', 'thumbnails-container', 'info']
        });
        
        this.current = this.create('span', 'current');
        this.current.innerHTML = '-';
        this.get('counter').innerHTML = ' / <span class="total">' + this.data.length + '</span>';
        this.prependChild('counter', this.current);
    },
    
    appendChild : function(parent, child) {
        try {
            this.get(parent).appendChild(this.get(child));
        } catch(e) {}
    },
    
    prependChild : function(parent, child) {
        var child = this.get(child) || child;
        try {
            this.get(parent).insertBefore(child, this.get(parent).firstChild);
        } catch(e) {}
    },
    
    remove : function() {
        var a = Array.prototype.slice.call(arguments);
        this.jQuery(a.join(',')).remove();
    },
    
    append : function(data) {
        for( var i in data) {
            if (data[i].constructor == Array) {
                for(var j=0; data[i][j]; j++) {
                    this.appendChild(i, data[i][j]);
                }
            } else {
                this.appendChild(i, data[i]);
            }
        }
        return this;
    },
    
    rescale : function(width, height, callback) {
        
        var o = this.options;
        callback = this.proxy(callback);
        
        if (typeof width == 'function') {
            callback = this.proxy(width);
            width = undefined;
        }
        
        var scale = this.proxy(function() {
            this.stageWidth = width || this.width(this.get('stage'));
            this.stageHeight = height || this.height(this.get('stage'));
            this.controls.getActive().scale({
                width: this.stageWidth, 
                height: this.stageHeight, 
                crop: o.image_crop, 
                max: o.max_scale_ratio,
                min: o.min_scale_ratio,
                margin: o.image_margin,
                position: o.image_position
            });
            if (this.carousel) {
                this.carousel.update();
            }
            this.trigger(G.RESCALE)
            callback();
        });
        if ( G.WEBKIT && !width && !height ) {
            this.addTimer('scale', scale, 5);// webkit is too fast
        } else {
            scale.call(this); 
        }
    },
    
    show : function(index, rewind, history) {
        if (!this.options.queue && this.queue.stalled) {
            return;
        }
        rewind = typeof rewind != 'undefined' ? !!rewind : index < this.active;
        history = history || false;
        index = Math.max(0, Math.min(parseInt(index), this.data.length - 1));
        if (!history && G.History) {
            G.History.value(index.toString());
            return;
        }
        this.active = index;
        this.push([index,rewind], this.queue);
        if (!this.queue.stalled) {
            this.showImage();
        }
        return this;
    },
    
    showImage : function() {
        var o = this.options;
        var args = this.queue[0];
        var index = args[0];
        var rewind = !!args[1];
        if (o.carousel && this.carousel && o.carousel_follow) {
            this.carousel.follow(index);
        }
        
        var src = this.getData(index).image;
        var active = this.controls.getActive();
        var next = this.controls.getNext();
        var cached = next.isCached(src);
        var complete = this.proxy(function() {
            this.queue.stalled = false;
            this.toggleQuality(next.image, o.image_quality);
            this.setStyle( active.elem, { zIndex : 0 } );
            this.setStyle( next.elem, { zIndex : 1 } );
            this.trigger({
                type: G.IMAGE,
                index: index,
                imageTarget: next.image,
                thumbTarget: this.thumbnails[index].image
            });
            if (o.image_pan) {
                this.addPan(next.image);
            }
            this.controls.swap();
            this.moveOut( active.image );
            if (this.getData( index ).link) {
                this.setStyle( next.image, { cursor: 'pointer' } );
                this.listen( next.image, 'click', this.proxy(function() {
                    if (o.popup_links) {
                        var win = window.open(this.getData( index ).link, '_blank');
                    } else {
                        window.location.href = this.getData( index ).link;
                    }
                }));
            }
            Array.prototype.shift.call( this.queue );
            if (this.queue.length) {
                this.showImage();
            }
            this.playCheck();
        });
        if (typeof o.preload == 'number' && o.preload > 0) {
            var p,n = this.getNext();
            try {
                for (var i = o.preload; i>0; i--) {
                    p = new Picture();
                    p.add(this.getData(n).image);
                    n = this.getNext(n);
                }
            } catch(e) {}
        }
        this.trigger( {
            type: G.LOADSTART,
            cached: cached,
            index: index,
            imageTarget: next.image,
            thumbTarget: this.thumbnails[index].image
        } );
        
        jQuery(this.thumbnails[index].elem).addClass('active').siblings('.active').removeClass('active');
        
        next.load( src, this.proxy(function(e) {
            next.scale({
                width: this.stageWidth, 
                height: this.stageHeight, 
                crop: o.image_crop, 
                max: o.max_scale_ratio, 
                min: o.min_scale_ratio,
                margin: o.image_margin,
                position: o.image_position,
                complete: this.proxy(function() {
                    if (active.image) {
                        this.toggleQuality(active.image, false);
                    }
                    this.toggleQuality(next.image, false);
                    this.trigger({
                        type: G.LOADFINISH,
                        cached: cached,
                        index: index,
                        imageTarget: next.image,
                        thumbTarget: this.thumbnails[index].image
                    });
                    this.queue.stalled = true;
                    var transition = G.transitions[o.transition] || o.transition;
                    this.removePan();
                    this.setInfo(index);
                    this.setCounter(index);
                    if (typeof transition == 'function') {
                        transition.call(this, {
                            prev: active.image,
                            next: next.image,
                            rewind: rewind,
                            speed: o.transition_speed || 400
                        }, complete );
                    } else {
                        complete();
                    }
                })
            });
        }));
    },
    
    getNext : function(base) {
        base = typeof base == 'number' ? base : this.active;
        return base == this.data.length - 1 ? 0 : base + 1;
    },
    
    getPrev : function(base) {
        base = typeof base == 'number' ? base : this.active;
        return base === 0 ? this.data.length - 1 : base - 1;
    },
    
    next : function() {
        if (this.data.length > 1) {
            this.show(this.getNext(), false);
        }
        return this;
    },
    
    prev : function() {
        if (this.data.length > 1) {
            this.show(this.getPrev(), true);
        }
        return this;
    },
    
    get : function( elem ) {
        return elem in this.dom ? this.dom[ elem ] : null;
    },
    
    getData : function( index ) {
        return this.data[index] || this.data[this.active];
    },
    
    getIndex : function() {
        return typeof this.active === 'number' ? this.active : 0;
    },
    
    play : function(delay) {
        this.trigger( G.PLAY );
        this.playing = true;
        this.playtime = delay || this.playtime;
        this.playCheck();
        return this;
    },
    
    pause : function() {
        this.trigger( G.PAUSE );
        this.playing = false;
        return this;
    },
    
    playCheck : function() {
        var p = 0;
        var i = 20; // the interval
        var ts = function() {
            return new Date().getTime();
        }
        var now = ts();
        if (this.playing) {
            this.clearTimer('play');
            var fn = this.proxy(function() {
                p = ts() - now;
                if ( p >= this.playtime && this.playing ) {
                    this.clearTimer('play');
                    this.next();
                    return;
                }
                if ( this.playing ) {
                    this.trigger({
                        type: G.PROGRESS,
                        percent: Math.ceil(p / this.playtime * 100),
                        seconds: Math.floor(p/1000),
                        milliseconds: p
                    });
                    this.addTimer('play', fn, i);
                }
            });
            this.addTimer('play', fn, i);
        }
    },
    
    setActive: function(val) {
        this.active = val;
        return this;
    },
    
    setCounter: function(index) {
        index = index || this.active;
        this.current.innerHTML = index+1;
        return this;
    },
    
    setInfo : function(index) {
        var data = this.getData(index || this.active);
        this.loop(['title','description','author'], function(type) {
            var elem = this.get('info-'+type);
            var fn = data[type] && data[type].length ? 'reveal' : 'hide';
            this[fn](elem);
            if (data[type]) {
                elem.innerHTML = data[type];
            }
        });
        return this;
    },
    
    hasInfo : function(index) {
        var d = this.getData(index);
        var check = 'title description author'.split(' ');
        for ( var i=0; check[i]; i++ ) {
            if ( d[ check[i] ] && d[ check[i] ].length ) {
                return true;
            }
        }
        return false;
    },
    
    getDataObject : function(o) {
        var obj = {
            image: '',
            thumb: '',
            title: '',
            description: '',
            author: '',
            link: ''
        };
        return o ? this.mix(obj,o) : obj;
    },
    
    jQuery : function( str ) {
        var ret = [];
        this.loop(str.split(','), this.proxy(function(elem) {
            elem = elem.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
            if (this.get(elem)) {
                ret.push(elem);
            }
        }));
        var jQ = jQuery(this.get(ret.shift()));
        this.loop(ret, this.proxy(function(elem) {
            jQ = jQ.add(this.get(elem));
        }));
        return jQ;
    },
    
    $ : function( str ) {
        return this.jQuery( str );
    },
    
    toggleQuality : function(img, force) {
        if (!G.IE7 || typeof img == 'undefined' || !img) {
            return this;
        }
        if (typeof force === 'undefined') {
            force = img.style.msInterpolationMode == 'nearest-neighbor';
        }
        img.style.msInterpolationMode = force ? 'bicubic' : 'nearest-neighbor';

        return this;
    },
    
    unload : function() {
        //TODO
    },
    
    load : function() {
        var loaded = 0;
        var o = this.options;
        if (
            (o.data_type == 'auto' && 
                typeof o.data_source == 'object' && 
                !(o.data_source instanceof jQuery) && 
                !o.data_source.tagName
            ) || o.data_type == 'json' || o.data_source.constructor == Array ) {
            this.data = o.data_source;
            this.trigger( G.DATA );
            
        } else { // assume selector
            var images = jQuery(o.data_source).find(o.data_image_selector);
            var getData = this.proxy(function( elem ) {
                var i,j,anchor = elem.parentNode;
                if (anchor && anchor.nodeName == 'A') {
                    if (anchor.href.match(/\.(png|gif|jpg|jpeg)/i)) {
                        i = anchor.href;
                    } else {
                        j = anchor.href;
                    }
                }
                var obj = this.getDataObject({
                    title: elem.title,
                    thumb: elem.src,
                    image: i || elem.src,
                    description: elem.alt,
                    link: j || elem.getAttribute('longdesc'),
                    elem: elem
                });
                return this.mix(obj, o.data_config( elem ) );
            });
            this.loop(images, function( elem ) {
                loaded++;
                this.push( getData( elem ), this.data );
                if (!o.keep_source && !Galleria.IE) {
                    elem.parentNode.removeChild(elem);
                }
                if ( loaded == images.length ) {
                    this.trigger( G.DATA );
                }
            });
        }
    }
});

G.log = function() {
    try { 
        console.log.apply( console, Array.prototype.slice.call(arguments) ); 
    } catch(e) {
        try {
            opera.postError.apply( opera, arguments ); 
        } catch(er) { 
              alert( Array.prototype.join.call( arguments, " " ) ); 
        } 
    }
};

var nav = navigator.userAgent.toLowerCase();
var hash = window.location.hash.replace(/#\//,'');

G.DATA = 'data';
G.READY = 'ready';
G.THUMBNAIL = 'thumbnail';
G.LOADSTART = 'loadstart';
G.LOADFINISH = 'loadfinish';
G.IMAGE = 'image';
G.THEMELOAD = 'themeload';
G.PLAY = 'play';
G.PAUSE = 'pause';
G.PROGRESS = 'progress';
G.FULLSCREEN_ENTER = 'fullscreen_enter';
G.FULLSCREEN_EXIT = 'fullscreen_exit';
G.IDLE_ENTER = 'idle_enter';
G.IDLE_EXIT = 'idle_exit';
G.RESCALE = 'rescale';
G.LIGHTBOX_OPEN = 'lightbox_open';
G.LIGHTBOX_CLOSE = 'lightbox_cloe';
G.LIGHTBOX_IMAGE = 'lightbox_image';

G.IE8 = (typeof(XDomainRequest) !== 'undefined')
G.IE7 = !!(window.XMLHttpRequest && document.expando);
G.IE6 = (!window.XMLHttpRequest);
G.IE = !!(G.IE6 || G.IE7);
G.WEBKIT = /webkit/.test( nav );
G.SAFARI = /safari/.test( nav );
G.CHROME = /chrome/.test( nav );
G.QUIRK = (G.IE && document.compatMode && document.compatMode == "BackCompat");
G.MAC = /mac/.test(navigator.platform.toLowerCase());
G.OPERA = !!window.opera

G.Picture = Picture;

G.addTheme = function(obj) {
    var theme = {};
    var orig = ['name','author','version','defaults','init'];
    var proto = G.prototype;
    proto.loop(orig, function(val) {
        if (!obj[ val ]) {
            G.raise(val+' not specified in theme.');
        }
        if (val != 'name' && val != 'init') {
            theme[val] = obj[val];
        }
    });
    theme.init = obj.init;
    
    if (obj.css) {
        var css;
        proto.loop(proto.getElements('script'), function(el) {
            var reg = new RegExp('galleria.' + obj.name.toLowerCase() + '.js');
            if(reg.test(el.src)) {
                css = el.src.replace(/[^\/]*$/, "") + obj.css;
                proto.loadCSS(css, function() {
                    G.theme = theme;
                    jQuery(document).trigger( G.THEMELOAD );
                });
            }
        });
        if (!css) {
            G.raise('No theme CSS loaded');
        }
    }
    return theme;
};

G.raise = function(msg) {
    if ( G.debug ) {
        throw new Error( msg );
    }
};

G.loadTheme = function(src) {
    G.prototype.loadScript(src);
};

G.galleries = [];
G.get = function(index) {
    if (G.galleries[index]) {
        return G.galleries[index];
    } else if (typeof index !== 'number') {
        return G.galleries;
    } else {
        G.raise('Gallery index not found');
    }
}

jQuery.easing.galleria = 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;
};

G.transitions = {
    add: function(name, fn) {
        if (name != arguments.callee.name ) {
            this[name] = fn;
        }
    },
    fade: function(params, complete) {
        jQuery(params.next).show().css('opacity',0).animate({
            opacity: 1
        }, params.speed, complete);
        if (params.prev) {
            jQuery(params.prev).css('opacity',1).animate({
                opacity: 0
            }, params.speed);
        }
    },
    flash: function(params, complete) {
        jQuery(params.next).css('opacity',0);
        if (params.prev) {
            jQuery(params.prev).animate({
                opacity: 0
            }, (params.speed/2), function() {
                jQuery(params.next).animate({
                    opacity: 1
                }, params.speed, complete);
            });
        } else {
            jQuery(params.next).animate({
                opacity: 1
            }, params.speed, complete);
        }
    },
    pulse: function(params, complete) {
        if (params.prev) {
            jQuery(params.prev).css('opacity',0);
        }
        jQuery(params.next).css('opacity',0).animate({
            opacity:1
        }, params.speed, complete);
    },
    slide: function(params, complete) {
        var image = jQuery(params.next).parent();
        var images =  this.$('images');
        var width = this.stageWidth;
        image.css({
            left: width * ( params.rewind ? -1 : 1 )
        });
        images.animate({
            left: width * ( params.rewind ? 1 : -1 )
        }, {
            duration: params.speed,
            queue: false,
            easing: 'galleria',
            complete: function() {
                images.css('left',0);
                image.css('left',0);
                complete();
            }
        });
    },
    fadeslide: function(params, complete) {
        if (params.prev) {
            jQuery(params.prev).css({
                opacity: 1,
                left: 0
            }).animate({
                opacity: 0,
                left: 50 * ( params.rewind ? 1 : -1 )
            },{
                duration: params.speed,
                queue: false,
                easing: 'swing'
            });
        }
        jQuery(params.next).css({
            left: 50 * ( params.rewind ? -1 : 1 ), 
            opacity: 0
        }).animate({
            opacity: 1,
            left:0
        }, {
            duration: params.speed,
            complete: complete,
            queue: false,
            easing: 'swing'
        });
    }
};

G.addTransition = function() {
    G.transitions.add.apply(this, arguments);
}

jQuery.fn.galleria = function(options) {
    
    options = options || {};
    var selector = this.selector;
    
    return this.each(function() {
        if ( !options.keep_source ) {
            jQuery(this).children().hide();
        }
    
        options = G.prototype.mix(options, {target: this} );
        var height = G.prototype.height(this) || G.prototype.getStyle(this, 'height', true);
        if (!options.height && height) {
            options = G.prototype.mix( { height: height }, options );
        }
    
        G.debug = !!options.debug;
    
        var gallery = new G(options);
        
        Galleria.galleries.push(gallery);
    
        if (G.theme) {
            gallery.init();
        } else {
            jQuery(document).bind(G.THEMELOAD, function() {
                gallery.init();
            });
        }
    })
};


})();;
var $j = jQuery.noConflict();

$j(document).ready(function() {

<!--prettyPhoto -->
$j("a[rel^='prettyPhoto']").prettyPhoto({theme:'facebook'});
<!--Menu -->
$j("ul.menu").superfish();
			
});

// Cufon font
Cufon.replace('h1, h2, h3, h4, h5, h6', {hover: true});
;
/*
* Author:      Marco Kuiper (http://www.marcofolio.net/)
*/
var $j = jQuery.noConflict();
$j(document).ready(function() {
		
	
	    $j('.portfolio_box_wide').cycle({
		timeout: 4000	,
		fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
	});
	
});;

