jQuery宇宙星球信息介绍特效

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 jQuery宇宙星球信息介绍特效 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图1:

jQuery宇宙星球信息介绍特效

部分效果截图2:

jQuery宇宙星球信息介绍特效

HTML代码(index.html):

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=800">
	<style>html {overflow: hidden;}</style>
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8">
	<style>
		.hidden { display:none; }
		#spinner {position:absolute;left:50%;top:50%;margin-left:-25px;margin-top:-25px;height:50px;width:50px;background:url('img/spinner.gif') no-repeat;}
	</style>
	<title>jQuery宇宙星球信息介绍特效</title>
</head>
<body class="system">
	<div id="starfield">
	</div>

	<div id="spinner"></div>
	
	<img id="glow" src="img/glow.png">

	<div id="title">
		<h1 class="franchise"><span class="marketing">The</span>Planetarium</h1>
		<span id="subtitle" class="carto">An HTML5 Astronomical Adventure</span>
	</div>
	
	<div id="instructions" class="carto loading">
		click on a planet to start
	</div>

	<div id="toggle-credits" class="loading">
		<span class="marketing">view credits</span>
	</div>

	<section id="credits">
		<span id="madeby" class="carto">Made on Earth by <a href="#" target="_blank" title="Visit Little Workshop">Little Workshop</a></span>
		<div id="door">
			<div></div>
			<div></div>			
		</div>
		<div id="doorlight">
			<div></div>
			<div></div>			
		</div>
		<div id="authors">
			<p id="guillaume">
				<span class="marketing">design by</span>
				<span class="bebas">Guillaume Lecollinet</span>
				<span class="carto"><a target="_blank" href="#" title="follow Guillaume on Twitter">@glecollinet</a></span>								
			</p>
			<p id="franck">
				<span class="marketing">code by</span>
				<span class="bebas">Franck Lecollinet</span>
				<span class="carto"><a target="_blank" href="#" title="follow Franck on Twitter">@whatthefranck</a></span>
			</p>
		</div>
		<section id="typefaces">
			<header>
				<span class="separator"></span>
				<span id="title-hr" class="marketing">typefaces</span>
				<span class="separator"></span>
			</header>
			<ul>
				<li class="carto">Marketing Script <br/><span>by</span> <a href="#" target="_blank" title="Dieter Steffmann">Dieter Steffmann</a></li>
				<li class="carto">Franchise <br/><span>by</span> <a href="#" target="_blank" title="Derek Weathersbee">Derek Weathersbee</a></li>
				<li class="carto">Bebas <br/><span>by</span> <a href="#" target="_blank" title="Flat-it Type Foundry">Flat-it</a></li>
				<li class="carto">CartoGothic Std <br/><span>by</span> <a href="#" target="_blank" title="FontSite Inc.">FontSite Inc.</a></li>												
			</ul>
		</section>
	</section>
	
	<ul id="planets" class="loading">
		<li id="mercury" class="planet"></li>
		<li id="venus" class="planet"></li>
		<li id="earth" class="planet"></li>
		<li id="mars" class="planet"></li>
		<li id="jupiter" class="planet"></li>	
		<li id="saturn" class="planet"></li>
		<li id="uranus" class="planet"></li>
		<li id="neptune" class="planet"></li>
	</ul>

	<div id="gui" class="shrink">
		<div id="container"></div>

		<div id="ruler">
		</div>
      
		<div id="back">
			<span class="carto">Back to space</span>
		</div>

		<div id="moveleft">
			<div id="previous">				
				<img src="img/previous.svg" type="image/svg+xml" alt="Previous planet">
			</div>
		</div>
		
		<div id="moveright">
			<div id="next">		
				<img src="img/previous.svg" type="image/svg+xml" alt="Next planet">
			</div>
		</div>
 
		<section class="content hidden" id="mercury-info">
			<article id="mercury-window" class="window">
				<div class="reflect">
					<h1 class="bebas">
						Mercury
					</h1>
					<p class="carto">is the first planet from the Sun and is also the smallest and densest planet of the Solar System. Mercury has yet to be entirely mapped, making it the least known planet in our system.</p>
				</div>			
			</article>
			<div id="mercury-missions">
				<h2 class="bebas">Mercury Observation Progress</h2>
				<ul>
					<li><img src="img/mercuryobs1.png" alt=""></li>
					<li><img src="img/mercuryobs2.png" alt=""></li>
					<li><img src="img/mercuryobs3.png" alt=""></li>
				</ul>
				<img id="mariner10" src="img/mariner10.png" alt="">
				<img id="techarrow" src="img/30years.png" alt="">
				<img id="messenger" src="img/messenger.png" alt="">					
			</div>
		</section>

		<section class="content hidden" id="venus-info">
			<article id="venus-window" class="window">
				<div class="reflect">
					<h1 class="bebas">
						Venus
					</h1>
					<p>is the second planet from the Sun and is often called Earth's sister due to its many similarities with the Blue Planet. However, a strong greenhouse effect gives Venus the hottest climate in the Solar System.</p>
				</div>			
			</article>
			<ul id="venus-atmosphere" class="bebas">
				<li>65 KM
					<span>-100°C</span>
					<span>Sulfuric Acid Cloud Layers</span>
				</li>
				<li>50 KM
					<span>0°C</span>
					<span>Sulfuric Acid Haze</span>
				</li>
				<li>38 KM
					<span>25°C</span>						
					<span>Troposphere</span>
				</li>
				<li>0 KM
					<span>467°C</span>						
					<span>Surface Level</span>
				</li>
			</ul>
		</section>

		<section class="content hidden" id="earth-info">
			<article id="earth-window" class="window">
				<div class="reflect">
					<h1 class="bebas">
						Earth
					</h1>
					<p>is the third planet from the Sun, and the densest and fifth-largest of the eight planets in the Solar System. Sometimes referred to as the Blue Planet, Earth is the only known planet to harbor life.</p>
				</div>			
			</article>
			<div id="earth-moon" class="grid moon">
				<img id="distance" src="img/distance.png" alt="">
			</div>
			<ul id="earth-facts" class="properties bebas">
				<li class="mass">
					<img src="img/mass.svg" alt="mass">
					5.9736 <small>x</small> 10<span class="exposant">24</span> kg
					<span>That's 80 times the mass of the moon</span>
				</li>
				<li class="perimeter">
					<img src="img/perimeter.svg" alt="perimeter">
					40,075,16 km
					<span>Equatorial circumference</span>
				</li>
				<li class="revolution">
					<img src="img/revolution.svg" alt="revolution">
					365 days
					<span>Complete Orbital Period</span>
				</li>
				<li class="temperature">
					<img src="img/temperature.svg" alt="temperature">
					-89.2&deg;C to 57.8&deg;C
					<span>Temperature range</span>
				</li>
			</ul>
		</section>
		
		<section class="content hidden" id="mars-info">
			<article id="mars-window" class="window">
				<div class="reflect">
					<h1 class="bebas">
						Mars
					</h1>
					<p>is the fourth planet from the Sun. Named after the Roman god of war, Mars is often described as the "Red Planet" and is the site of Olympus Mons, the highest known mountain in the Solar System.</p>
				</div>			
			</article>
			<ul id="volcanoes" class="bebas">
				<li>Olympus Mons<span>27,000 KM</span><hr /></li>
				<li>Mount Everest<span>8,848 KM</span><hr /></li>
				<li>Mount Fuji<span>3,776 KM</span><hr /></li>
			</ul>
		</section>
		
		<section class="content hidden" id="jupiter-info">
			<article id="jupiter-window" class="window">
				<div class="reflect">
					<h1 class="bebas">
						Jupiter
					</h1>
					<p> is the fifth planet from the Sun and is the largest planet of the Solar System. Jupiter has 63 known satellites, the biggest of which are called the four Galilean Moons : Io, Europa, Ganymede and Callisto.</p>
				</div>			
			</article>				
			<ul id="jupiter-moons" class="properties bebas">
				<li><img src="img/iopicto.png" alt="">
					IO
					<span>Land of Volcanoes</span>
				</li>
				<li><img src="img/europapicto.png" alt="">
					EUROPA
					<span>Ice Ice Baby</span>
				</li>
				<li><img src="img/ganymedepicto.png" alt="">
					GANYMEDE
					<span>Larger than Mercury</span>	
				</li>
				<li><img src="img/callistopicto.png" alt="">
					CALLISTO
					<span>The Habitable Moon ?</span>	
				</li>															
			</ul>
			<div id="galilean-moons" class="grid bebas"></div>
		</section>
		
		<section class="content hidden" id="saturn-info">
			<article id="saturn-window" class="window">
				<div class="reflect">
					<h1 class="bebas">
						Saturn
					</h1>
					<p>is the sixth planet from the Sun and is the second largest planet in our system. Despite its size (9.4 Earths), Saturn's density is so low that it would float on water if there was a large enough ocean.</p>
				</div>			
			</article>
			<div id="rings-origin">
				<h2 class="bebas">The origin of Saturn's rings</h2>
				<p class="carto">Almost entirely composed of water ice,<br />Saturn's rings are believed to<br />be the remains of a<br />former moon.</p>
				<ul id="arrows" class="bebas">
					<li><span>1</span>
						<img class="saturnarrow" src="img/saturn-arrow1.png" alt="">
						<img class="rings" src="img/rings1.png" alt="">							
						</li>
					<li><span>2</span>
						<img class="saturnarrow" src="img/saturn-arrow2.png" alt="">
						<img class="rings" src="img/rings2.png" alt="">							
						</li>
					<li><span>3</span>
						<img class="saturnarrow" src="img/saturn-arrow3.png" alt="">
						<img class="rings" src="img/rings3.png" alt="">							
						</li>												
				</ul>
			</div>
		</section>
		
		<section class="content hidden" id="uranus-info">
			<article id="uranus-window" class="window">
				<div class="reflect">
					<h1 class="bebas">
						Uranus
					</h1>
					<p>is the seventh planet from the Sun and is the coldest in the Solar System. Altough the first pictures taken by Voyager 2 showed a featureless, pale-blue planet, astronomers later discovered the complex atmosphere of Uranus.</p>
				</div>			
			</article>
			<div id="axial-tilt" class="grid">
				<h2 class="bebas">Axial Tilt</h2>
				<img src="img/tilt.png" alt="">
				<span class="bebas">98°</span>					
			</div>				
			<div id="uranus-atmosphere">
				<h2 class="bebas">The atmosphere of uranus</h2>
				<div id="hydrogen">
					<div></div>
					<div></div>
					<div></div>
					<span class="bebas">85.3%<br />
						Hydrogen
					</span>						
				</div>
				<div id="helium">
					<div></div>
					<div></div>
					<div></div>
					<span class="bebas">15.3%<br />
						Helium
					</span>						
				</div>
				<div id="methane">
					<div></div>
					<div></div>
					<div></div>
					<span class="bebas">2.3%<br />
						Methane
					</span>
				</div>
				<div id="deuteride">
					<div></div>
					<div></div>
					<div></div>
					<span class="bebas">0.01%<br />
						Hydrogen Deuteride
					</span>
				</div>
			</div>
		</section>
		
		<section class="content hidden" id="neptune-info">
			<article id="neptune-window" class="window">
				<div class="reflect">
					<h1 class="bebas">
						Neptune
					</h1>
					<p>is the eighth and farthest planet from the sun. Neptune has been approached only once by a man-made object, Voyager 2 space probe, in 1989. Most of our knowledge of Neptune comes from this first and only flyby.</p>
				</div>			
			</article>
			<ul id="neptune-facts" class="bebas">
				<li><img src="img/wind.png" alt="">
					2100 <span>km/h</span>
					<br />
					<span class="carto">max wind speed</span>
				</li>
				<li><img src="img/satellite.png" alt="">
					13 <span>known satellites</span>
					<br />
					<span class="carto">and counting</span>
				</li>
				<li><img src="img/time.png" alt="">
					164 <span>earth years</span>
					<br />
					<span class="carto">per neptunian year</span>
				</li>
			</ul>
			<div id="flyby">
				<img src="img/earthicon.png" alt="">
				<img src="img/246min.png" alt="">
				<img id="voyager2" src="img/voyager2.png" alt="Voyager 2">
			</div>
		</section>
	</div>
	
	<div id="counters"></div>
	<script data-main="main.min" src="js/require-jquery-1.4.4.min.js"></script>
</body>
</html>

JS代码(main.min.js):

define("constants",{
	VIEW:{
	PLANET:0,SYSTEM:1}
,IMG_SIZE:600,TRANSITION_END:"transitionend webkitTransitionEnd oTransitionEnd"}
);
	(function(){
	function k(){
	if(k.is(arguments[0],da)){
	for(var a=arguments[0],b=Ja[M](k,a.splice(0,3+k.is(a[0],X))),c=b.set(),e=0,f=a[v];
	e<f;
	e++){
	var d=a[e]||{
}
;
	fa[u](d.type)&&c[N](b[d.type]().attr(d))}
return c}
return Ja[M](k,arguments)}
function t(){
	for(var a=[],b=0;
	b<32;
	b++)a[b]=(~~(G.random()*16))[ka](16);
	a[12]=4;
	a[16]=(a[16]&3|8)[ka](16);
	return"r-"+a[Y]("")}
function q(a,b,c){
	function e(){
	var f=Array[p].slice.call(arguments,0),d=f[Y]("\u25ba"),g=e.cache=e.cache||{
}
,h=e.count=e.count||[];
	if(g[u](d))return c?c(g[d]):g[d];
	h[v]>=1E3&&delete g[h.shift()];
	h[N](d);
	g[d]=a[M](b,f);
	return c?c(g[d]):g[d]}
return e}
function w(){
	return this.x+V+this.y}
function K(a){
	return function(b,c,e,f){
	var d={
	back:a}
;
	k.is(e,"function")?(f=e):(d.rot=e);
	b&&b.constructor==L&&(b=b.attrs.path);
	b&&(d.along=b);
	return this.animate(d,c,f)}
}
function O(a,b,c,e,f,d){
	function g(z){
	return((m*z+l)*z+i)*z}
function h(z,E){
	z=j(z,E);
	return((s*z+o)*z+n)*z}
function j(z,E){
	var A,R,T,S;
	T=z;
	for(R=0;
	R<8;
	R++){
	S=g(T)-z;
	if(W(S)<E)return T;
	A=(3*m*T+2*l)*T+i;
	if(W(A)<1.0E-6)break;
	T-=S/A}
A=0;
	R=1;
	T=z;
	if(T<A)return A;
	if(T>R)return R;
	for(;
	A<R;
	){
	S=g(T);
	if(W(S-z)<E)return T;
	z>S?(A=T):(R=T);
	T=(R-A)/2+A}
return T}
var i=3*b,l=3*(e-b)-i,m=1-i-l,n=3*c,o=3*(f-c)-n,s=1-n-o;
	return h(a,1/(200*d))}
k.version="1.5.2";
	var C=/[,]+/,fa={
	circle:1,rect:1,path:1,ellipse:1,text:1,image:1}
,qa=/\{
	(\d+)\}
/g,p="prototype",u="hasOwnProperty",y=document,H=window,J={
	was:Object[p][u].call(H,"Raphael"),is:H.Raphael}
,na=function(){
	this.customAttributes={
}
}
,P,M="apply",oa="createTouch"iny,V=" ",D=String,sa="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend orientationchange touchcancel gesturestart gesturechange gestureend".split(V),Ka={
	mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"}
,Y="join",v="length",pa=D[p].toLowerCase,G=Math,ca=G.max,ja=G.min,W=G.abs,Q=G.pow,aa=G.PI,X="number",da="array",ka="toString",sb=Object[p][ka],N="push",Wa=/^url\(['"]?([^\)]+?)['"]?\)$/i,tb=/^\s*((#[a-f\d]{
	6}
)|(#[a-f\d]{
	3}
)|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,ub={
	NaN:1,Infinity:1,"-Infinity":1}
,vb=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,Z=G.round,F=parseFloat,la=parseInt,ya=D[p].toUpperCase,za={
	blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/",opacity:1,path:"M0,0",r:0,rotation:0,rx:0,ry:0,scale:"1 1",src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",translation:"0 0",width:0,x:0,y:0}
,La={
	along:"along",blur:X,"clip-rect":"csv",cx:X,cy:X,fill:"colour","fill-opacity":X,"font-size":X,height:X,opacity:X,path:"path",r:X,rotation:"csv",rx:X,ry:X,scale:"csv",stroke:"colour","stroke-opacity":X,"stroke-width":X,translation:"csv",width:X,x:X,y:X}
,wb=/^(from|to|\d+%?)$/,Ma=/\s*,\s*/
,xb={
	hs:1,rg:1}
,yb=/,?([achlmqrstvxz]),?/gi,zb=/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,Ab=/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/
ig,Xa=/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,Bb=function(a,b){
	return a.key-b.key}
;
	k.type=H.SVGAngle||y.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML";
	if(k.type=="VML"){
	var ga=y.createElement("div");
	ga.innerHTML='<v:shape adj="1"/>';
	ga=ga.firstChild;
	ga.style.behavior="url(#default#VML)";
	if(!(ga&&typeof ga.adj=="object"))return k.type=null;
	ga=null}
k.svg=!(k.vml=k.type=="VML");
	na[p]=k[p];
	P=na[p];
	k._id=0;
	k._oid=0;
	k.fn={
}
;
	k.is=function(a,b){
	b=pa.call(b);
	if(b=="finite")return!ub[u](+a);
	return b=="null"&&a===null||b==typeof a||b=="object"&&a===Object(a)||b=="array"&&Array.isArray&&Array.isArray(a)||sb.call(a).slice(8,-1).toLowerCase()==b}
;
	k.angle=function(a,b,c,e,f,d){
	if(f==null){
	a=a-c;
	b=b-e;
	if(!a&&!b)return 0;
	return((a<0)*180+G.atan(-b/-a)*180/aa+360)%360}
return k.angle(a,b,f,d)-k.angle(c,e,f,d)}
;
	k.rad=function(a){
	return a%360*aa/180}
;
	k.deg=function(a){
	return a*180/aa%360}
;
	k.snapTo=function(a,b,c){
	c=k.is(c,"finite")?c:10;
	if(k.is(a,da))for(var e=a.length;
	e--;
	){
	if(W(a[e]-b)<=c)return a[e]}
else{
	a=+a;
	e=b%a;
	if(e<c)return b-e;
	if(e>a-c)return b-e+a}
return b}
;
	k.setWindow=function(a){
	H=a;
	y=H.document}
;
	var Aa=function(a){
	if(k.vml){
	var b=/^\s+|\s+$/g,c;
	try{
	var e=new ActiveXObject("htmlfile");
	e.write("<body>");
	e.close();
	c=e.body}
catch(f){
	c=createPopup().document.body}
var d=c.createTextRange();
	Aa=q(function(h){
	try{
	c.style.color=D(h).replace(b,"");
	var j=d.queryCommandValue("ForeColor");
	j=(j&255)<<16|j&65280|(j&16711680)>>>16;
	return"#"+("000000"+j[ka](16)).slice(-6)}
catch(i){
	return"none"}
}
)}
else{
	var g=y.createElement("i");
	g.title="Rapha\u00ebl Colour Picker";
	g.style.display="none";
	y.body.appendChild(g);
	Aa=q(function(h){
	g.style.color=h;
	return y.defaultView.getComputedStyle(g,"").getPropertyValue("color")}
)}
return Aa(a)}
,Ya=function(){
	return"hsb("+[this.h,this.s,this.b]+")"}
,Cb=function(){
	return"hsl("+[this.h,this.s,this.l]+")"}
,Db=function(){
	return this.hex}
;
	k.hsb2rgb=function(a,b,c,e){
	if(k.is(a,"object")&&"h"in a&&"s"in a&&"b"in a){
	c=a.b;
	b=a.s;
	a=a.h;
	e=a.o}
return k.hsl2rgb(a,b,c/2,e)}
;
	k.hsl2rgb=function(a,b,c,e){
	if(k.is(a,"object")&&"h"in a&&"s"in a&&"l"in a){
	c=a.l;
	b=a.s;
	a=a.h}
if(a>1||b>1||c>1){
	a/=360;
	b/=100;
	c/=100}
var f={
}
,d=["r","g","b"],g;
	if(b){
	c<0.5?(g=c*(1+b)):(g=c+b-c*b);
	b=2*c-g;
	for(var h=0;
	h<3;
	h++){
	c=a+1/3*-(h-1);
	c<0&&c++;
	c>1&&c--;
	c*6<1?(f[d[h]]=b+(g-b)*6*c):c*2<1?(f[d[h]]=g):c*3<2?(f[d[h]]=b+(g-b)*(2/3-c)*6):(f[d[h]]=b)}
}
else f={
	r:c,g:c,b:c}
;
	f.r*=255;
	f.g*=255;
	f.b*=255;
	f.hex="#"+(16777216|f.b|f.g<<8|f.r<<16).toString(16).slice(1);
	k.is(e,"finite")&&(f.opacity=e);
	f.toString=Db;
	return f}
;
	k.rgb2hsb=function(a,b,c){
	if(b==null&&k.is(a,"object")&&"r"in a&&"g"in a&&"b"in a){
	c=a.b;
	b=a.g;
	a=a.r}
if(b==null&&k.is(a,"string")){
	c=k.getRGB(a);
	a=c.r;
	b=c.g;
	c=c.b}
if(a>1||b>1||c>1){
	a/=255;
	b/=255;
	c/=255}
var e=ca(a,b,c),f=ja(a,b,c),d;
	if(f==e)return{
	h:0,s:0,b:e,toString:Ya}
;
	var g=e-f;
	f=g/e;
	a==e?(d=(b-c)/g):b==e?(d=2+(c-a)/g):(d=4+(a-b)/g);
	d/=6;
	d<0&&d++;
	d>1&&d--;
	return{
	h:d,s:f,b:e,toString:Ya}
}
;
	k.rgb2hsl=function(a,b,c){
	if(b==null&&k.is(a,"object")&&"r"in a&&"g"in a&&"b"in a){
	c=a.b;
	b=a.g;
	a=a.r}
if(b==null&&k.is(a,"string")){
	c=k.getRGB(a);
	a=c.r;
	b=c.g;
	c=c.b}
if(a>1||b>1||c>1){
	a/=255;
	b/=255;
	c/=255}
var e=ca(a,b,c),f=ja(a,b,c),d,g=(e+f)/2;
	if(f==e)a={
	h:0,s:0,l:g}
;
	else{
	var h=e-f;
	f=g<0.5?h/(e+f):h/(2-e-f);
	a==e?(d=(b-c)/h):b==e?(d=2+(c-a)/h):(d=4+(a-b)/h);
	d/=6;
	d<0&&d++;
	d>1&&d--;
	a={
	h:d,s:f,l:g}
}
a.toString=Cb;
	return a}
;
	k._path2string=function(){
	return this.join(",").replace(yb,"$1")}
;
	k.getRGB=q(function(a){
	if(!a||(a=D(a)).indexOf("-")+1)return{
	r:-1,g:-1,b:-1,hex:"none",error:1}
;
	if(a=="none")return{
	r:-1,g:-1,b:-1,hex:"none"}
;
	!(xb[u](a.toLowerCase().substring(0,2))||a.charAt()=="#")&&(a=Aa(a));
	var b,c,e,f,d;
	if(a=a.match(tb)){
	if(a[2]){
	e=la(a[2].substring(5),16);
	c=la(a[2].substring(3,5),16);
	b=la(a[2].substring(1,3),16)}
if(a[3]){
	e=la((d=a[3].charAt(3))+d,16);
	c=la((d=a[3].charAt(2))+d,16);
	b=la((d=a[3].charAt(1))+d,16)}
if(a[4]){
	d=a[4].split(Ma);
	b=F(d[0]);
	d[0].slice(-1)=="%"&&(b*=2.55);
	c=F(d[1]);
	d[1].slice(-1)=="%"&&(c*=2.55);
	e=F(d[2]);
	d[2].slice(-1)=="%"&&(e*=2.55);
	a[1].toLowerCase().slice(0,4)=="rgba"&&(f=F(d[3]));
	d[3]&&d[3].slice(-1)=="%"&&(f/=100)}
if(a[5]){
	d=a[5].split(Ma);
	b=F(d[0]);
	d[0].slice(-1)=="%"&&(b*=2.55);
	c=F(d[1]);
	d[1].slice(-1)=="%"&&(c*=2.55);
	e=F(d[2]);
	d[2].slice(-1)=="%"&&(e*=2.55);
	(d[0].slice(-3)=="deg"||d[0].slice(-1)=="\u00b0")&&(b/=360);
	a[1].toLowerCase().slice(0,4)=="hsba"&&(f=F(d[3]));
	d[3]&&d[3].slice(-1)=="%"&&(f/=100);
	return k.hsb2rgb(b,c,e,f)}
if(a[6]){
	d=a[6].split(Ma);
	b=F(d[0]);
	d[0].slice(-1)=="%"&&(b*=2.55);
	c=F(d[1]);
	d[1].slice(-1)=="%"&&(c*=2.55);
	e=F(d[2]);
	d[2].slice(-1)=="%"&&(e*=2.55);
	(d[0].slice(-3)=="deg"||d[0].slice(-1)=="\u00b0")&&(b/=360);
	a[1].toLowerCase().slice(0,4)=="hsla"&&(f=F(d[3]));
	d[3]&&d[3].slice(-1)=="%"&&(f/=100);
	return k.hsl2rgb(b,c,e,f)}
a={
	r:b,g:c,b:e}
;
	a.hex="#"+(16777216|e|c<<8|b<<16).toString(16).slice(1);
	k.is(f,"finite")&&(a.opacity=f);
	return a}
return{
	r:-1,g:-1,b:-1,hex:"none",error:1}
}
,k);
	k.getColor=function(a){
	a=this.getColor.start=this.getColor.start||{
	h:0,s:1,b:a||0.75}
;
	var b=this.hsb2rgb(a.h,a.s,a.b);
	a.h+=0.075;
	if(a.h>1){
	a.h=0;
	a.s-=0.2;
	a.s<=0&&(this.getColor.start={
	h:0,s:1,b:a.b}
)}
return b.hex}
;
	k.getColor.reset=function(){
	delete this.start}
;
	k.parsePathString=q(function(a){
	if(!a)return null;
	var b={
	a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0}
,c=[];
	k.is(a,da)&&k.is(a[0],da)&&(c=Ba(a));
	c[v]||D(a).replace(zb,function(e,f,d){
	var g=[];
	e=pa.call(f);
	d.replace(Ab,function(h,j){
	j&&g[N](+j)}
);
	if(e=="m"&&g[v]>2){
	c[N]([f].concat(g.splice(0,2)));
	e="l";
	f=f=="m"?"l":"L"}
for(;
	g[v]>=b[e];
	){
	c[N]([f].concat(g.splice(0,b[e])));
	if(!b[e])break}
}
);
	c[ka]=k._path2string;
	return c}
);
	k.findDotsAtSegment=function(a,b,c,e,f,d,g,h,j){
	var i=1-j,l=Q(i,3)*a+Q(i,2)*3*j*c+i*3*j*j*f+Q(j,3)*g;
	i=Q(i,3)*b+Q(i,2)*3*j*e+i*3*j*j*d+Q(j,3)*h;
	var m=a+2*j*(c-a)+j*j*(f-2*c+a),n=b+2*j*(e-b)+j*j*(d-2*e+b),o=c+2*j*(f-c)+j*j*(g-2*f+c),s=e+2*j*(d-e)+j*j*(h-2*d+e);
	a=(1-j)*a+j*c;
	b=(1-j)*b+j*e;
	f=(1-j)*f+j*g;
	d=(1-j)*d+j*h;
	h=90-G.atan((m-o)/(n-s))*180/aa;
	(m>o||n<s)&&(h+=180);
	return{
	x:l,y:i,m:{
	x:m,y:n}
,n:{
	x:o,y:s}
,start:{
	x:a,y:b}
,end:{
	x:f,y:d}
,alpha:h}
}
;
	var Da=q(function(a){
	if(!a)return{
	x:0,y:0,width:0,height:0}
;
	a=Ca(a);
	for(var b=0,c=0,e=[],f=[],d,g=0,h=a[v];
	g<h;
	g++){
	d=a[g];
	if(d[0]=="M"){
	b=d[1];
	c=d[2];
	e[N](b);
	f[N](c)}
else{
	b=Eb(b,c,d[1],d[2],d[3],d[4],d[5],d[6]);
	e=e.concat(b.min.x,b.max.x);
	f=f.concat(b.min.y,b.max.y);
	b=d[5];
	c=d[6]}
}
a=ja[M](0,e);
	d=ja[M](0,f);
	return{
	x:a,y:d,width:ca[M](0,e)-a,height:ca[M](0,f)-d}
}
),Ba=function(a){
	var b=[];
	if(!k.is(a,da)||!k.is(a&&a[0],da))a=k.parsePathString(a);
	for(var c=0,e=a[v];
	c<e;
	c++){
	b[c]=[];
	for(var f=0,d=a[c][v];
	f<d;
	f++)b[c][f]=a[c][f]}
b[ka]=k._path2string;
	return b}
,Na=q(function(a){
	if(!k.is(a,da)||!k.is(a&&a[0],da))a=k.parsePathString(a);
	var b=[],c=0,e=0,f=0,d=0,g=0;
	if(a[0][0]=="M"){
	c=a[0][1];
	e=a[0][2];
	f=c;
	d=e;
	g++;
	b[N](["M",c,e])}
g=g;
	for(var h=a[v];
	g<h;
	g++){
	var j=b[g]=[],i=a[g];
	if(i[0]!=pa.call(i[0])){
	j[0]=pa.call(i[0]);
	switch(j[0]){
	case "a":j[1]=i[1];
	j[2]=i[2];
	j[3]=i[3];
	j[4]=i[4];
	j[5]=i[5];
	j[6]=+(i[6]-c).toFixed(3);
	j[7]=+(i[7]-e).toFixed(3);
	break;
	case "v":j[1]=+(i[1]-e).toFixed(3);
	break;
	case "m":f=i[1];
	d=i[2];
	default:for(var l=1,m=i[v];
	l<m;
	l++)j[l]=+(i[l]-(l%2?c:e)).toFixed(3)}
}
else{
	b[g]=[];
	if(i[0]=="m"){
	f=i[1]+c;
	d=i[2]+e}
j=0;
	for(l=i[v];
	j<l;
	j++)b[g][j]=i[j]}
i=b[g][v];
	switch(b[g][0]){
	case "z":c=f;
	e=d;
	break;
	case "h":c+=+b[g][i-1];
	break;
	case "v":e+=+b[g][i-1];
	break;
	default:c+=+b[g][i-2];
	e+=+b[g][i-1]}
}
b[ka]=k._path2string;
	return b}
,0,Ba),ua=q(function(a){
	if(!k.is(a,da)||!k.is(a&&a[0],da))a=k.parsePathString(a);
	var b=[],c=0,e=0,f=0,d=0,g=0;
	if(a[0][0]=="M"){
	c=+a[0][1];
	e=+a[0][2];
	f=c;
	d=e;
	g++;
	b[0]=["M",c,e]}
g=g;
	for(var h=a[v];
	g<h;
	g++){
	var j=b[g]=[],i=a[g];
	if(i[0]!=ya.call(i[0])){
	j[0]=ya.call(i[0]);
	switch(j[0]){
	case "A":j[1]=i[1];
	j[2]=i[2];
	j[3]=i[3];
	j[4]=i[4];
	j[5]=i[5];
	j[6]=+(i[6]+c);
	j[7]=+(i[7]+e);
	break;
	case "V":j[1]=+i[1]+e;
	break;
	case "H":j[1]=+i[1]+c;
	break;
	case "M":f=+i[1]+c;
	d=+i[2]+e;
	default:for(var l=1,m=i[v];
	l<m;
	l++)j[l]=+i[l]+(l%2?c:e)}
}
else{
	l=0;
	for(m=i[v];
	l<m;
	l++)b[g][l]=i[l]}
switch(j[0]){
	case "Z":c=f;
	e=d;
	break;
	case "H":c=j[1];
	break;
	case "V":e=j[1];
	break;
	case "M":f=b[g][b[g][v]-2];
	d=b[g][b[g][v]-1];
	default:c=b[g][b[g][v]-2];
	e=b[g][b[g][v]-1]}
}
b[ka]=k._path2string;
	return b}
,null,Ba),Ea=function(a,b,c,e){
	return[a,b,c,e,c,e]}
,Za=function(a,b,c,e,f,d){
	var g=1/3,h=2/3;
	return[g*a+h*c,g*b+h*e,g*f+h*c,g*d+h*e,f,d]}
,$a=function(a,b,c,e,f,d,g,h,j,i){
	var l=aa*120/180,m=aa/180*(+f||0),n=[],o,s=q(function(T,S,U){
	var ra=T*G.cos(U)-S*G.sin(U);
	T=T*G.sin(U)+S*G.cos(U);
	return{
	x:ra,y:T}
}
);
	if(i){
	A=i[0];
	o=i[1];
	d=i[2];
	E=i[3]}
else{
	o=s(a,b,-m);
	a=o.x;
	b=o.y;
	o=s(h,j,-m);
	h=o.x;
	j=o.y;
	G.cos(aa/180*f);
	G.sin(aa/180*f);
	o=(a-h)/2;
	A=(b-j)/2;
	var z=o*o/(c*c)+A*A/(e*e);
	if(z>1){
	z=G.sqrt(z);
	c=z*c;
	e=z*e}
z=c*c;
	E=e*e;
	z=(d==g?-1:1)*G.sqrt(W((z*E-z*A*A-E*o*o)/(z*A*A+E*o*o)));
	d=z*c*A/e+(a+h)/2;
	var E=z*-e*o/c+(b+j)/2,A=G.asin(((b-E)/e).toFixed(9));
	o=G.asin(((j-E)/e).toFixed(9));
	A=a<d?aa-A:A;
	o=h<d?aa-o:o;
	A<0&&(A=aa*2+A);
	o<0&&(o=aa*2+o);
	g&&A>o&&(A-=aa*2);
	!g&&o>A&&(o-=aa*2)}
z=o-A;
	if(W(z)>l){
	n=o;
	z=h;
	var R=j;
	o=A+l*(g&&o>A?1:-1);
	h=d+c*G.cos(o);
	j=E+e*G.sin(o);
	n=$a(h,j,c,e,f,0,g,z,R,[o,n,d,E])}
z=o-A;
	f=G.cos(A);
	l=G.sin(A);
	g=G.cos(o);
	o=G.sin(o);
	d=G.tan(z/4);
	c=4/3*c*d;
	d=4/3*e*d;
	e=[a,b];
	a=[a+c*l,b-d*f];
	b=[h+c*o,j-d*g];
	h=[h,j];
	a[0]=2*e[0]-a[0];
	a[1]=2*e[1]-a[1];
	if(i)return[a,b,h].concat(n);
	n=[a,b,h].concat(n)[Y]().split(",");
	i=[];
	h=0;
	for(j=n[v];
	h<j;
	h++)i[h]=h%2?s(n[h-1],n[h],m).y:s(n[h],n[h+1],m).x;
	return i}
,Fa=function(a,b,c,e,f,d,g,h,j){
	var i=1-j;
	return{
	x:Q(i,3)*a+Q(i,2)*3*j*c+i*3*j*j*f+Q(j,3)*g,y:Q(i,3)*b+Q(i,2)*3*j*e+i*3*j*j*d+Q(j,3)*h}
}
,Eb=q(function(a,b,c,e,f,d,g,h){
	var j=f-2*c+a-(g-2*f+c),i=2*(c-a)-2*(f-c),l=a-c,m=(-i+G.sqrt(i*i-4*j*l))/2/j;
	j=(-i-G.sqrt(i*i-4*j*l))/2/j;
	var n=[b,h],o=[a,g];
	W(m)>"1e12"&&(m=0.5);
	W(j)>"1e12"&&(j=0.5);
	if(m>0&&m<1){
	m=Fa(a,b,c,e,f,d,g,h,m);
	o[N](m.x);
	n[N](m.y)}
if(j>0&&j<1){
	m=Fa(a,b,c,e,f,d,g,h,j);
	o[N](m.x);
	n[N](m.y)}
j=d-2*e+b-(h-2*d+e);
	i=2*(e-b)-2*(d-e);
	l=b-e;
	m=(-i+G.sqrt(i*i-4*j*l))/2/j;
	j=(-i-G.sqrt(i*i-4*j*l))/2/j;
	W(m)>"1e12"&&(m=0.5);
	W(j)>"1e12"&&(j=0.5);
	if(m>0&&m<1){
	m=Fa(a,b,c,e,f,d,g,h,m);
	o[N](m.x);
	n[N](m.y)}
if(j>0&&j<1){
	m=Fa(a,b,c,e,f,d,g,h,j);
	o[N](m.x);
	n[N](m.y)}
return{
	min:{
	x:ja[M](0,o),y:ja[M](0,n)}
,max:{
	x:ca[M](0,o),y:ca[M](0,n)}
}
}
),Ca=q(function(a,b){
	var c=ua(a),e=b&&ua(b);
	a={
	x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null}
;
	b={
	x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null}
;
	var f=function(o,s){
	var z;
	if(!o)return["C",s.x,s.y,s.x,s.y,s.x,s.y];
	!(o[0]in{
	T:1,Q:1}
)&&(s.qx=s.qy=null);
	switch(o[0]){
	case "M":s.X=o[1];
	s.Y=o[2];
	break;
	case "A":o=["C"].concat($a[M](0,[s.x,s.y].concat(o.slice(1))));
	break;
	case "S":z=s.x+(s.x-(s.bx||s.x));
	s=s.y+(s.y-(s.by||s.y));
	o=["C",z,s].concat(o.slice(1));
	break;
	case "T":s.qx=s.x+(s.x-(s.qx||s.x));
	s.qy=s.y+(s.y-(s.qy||s.y));
	o=["C"].concat(Za(s.x,s.y,s.qx,s.qy,o[1],o[2]));
	break;
	case "Q":s.qx=o[1];
	s.qy=o[2];
	o=["C"].concat(Za(s.x,s.y,o[1],o[2],o[3],o[4]));
	break;
	case "L":o=["C"].concat(Ea(s.x,s.y,o[1],o[2]));
	break;
	case "H":o=["C"].concat(Ea(s.x,s.y,o[1],s.y));
	break;
	case "V":o=["C"].concat(Ea(s.x,s.y,s.x,o[1]));
	break;
	case "Z":o=["C"].concat(Ea(s.x,s.y,s.X,s.Y));
	break}
return o}
,d=function(o,s){
	if(o[s][v]>7){
	o[s].shift();
	for(var z=o[s];
	z[v];
	)o.splice(s++,0,["C"].concat(z.splice(0,6)));
	o.splice(s,1);
	j=ca(c[v],e&&e[v]||0)}
}
,g=function(o,s,z,E,A){
	if(o&&s&&o[A][0]=="M"&&s[A][0]!="M"){
	s.splice(A,0,["M",E.x,E.y]);
	z.bx=0;
	z.by=0;
	z.x=o[A][1];
	z.y=o[A][2];
	j=ca(c[v],e&&e[v]||0)}
}
,h=0,j=ca(c[v],e&&e[v]||0);
	for(;
	h<j;
	h++){
	c[h]=f(c[h],a);
	d(c,h);
	e&&(e[h]=f(e[h],b));
	e&&d(e,h);
	g(c,e,a,b,h);
	g(e,c,b,a,h);
	var i=c[h],l=e&&e[h],m=i[v],n=e&&l[v];
	a.x=i[m-2];
	a.y=i[m-1];
	a.bx=F(i[m-4])||a.x;
	a.by=F(i[m-3])||a.y;
	b.bx=e&&(F(l[n-4])||b.x);
	b.by=e&&(F(l[n-3])||b.y);
	b.x=e&&l[n-2];
	b.y=e&&l[n-1]}
return e?[c,e]:c}
,null,Ba),ab=q(function(a){
	for(var b=[],c=0,e=a[v];
	c<e;
	c++){
	var f={
}
,d=a[c].match(/^([^:]*):?([\d\.]*)/);
	f.color=k.getRGB(d[1]);
	if(f.color.error)return null;
	f.color=f.color.hex;
	d[2]&&(f.offset=d[2]+"%");
	b[N](f)}
c=1;
	for(e=b[v]-1;
	c<e;
	c++)if(!b[c].offset){
	a=F(b[c-1].offset||0);
	d=0;
	for(f=c+1;
	f<e;
	f++)if(b[f].offset){
	d=b[f].offset;
	break}
if(!d){
	d=100;
	f=e}
d=F(d);
	for(d=(d-a)/(f-c+1);
	c<f;
	c++){
	a+=d;
	b[c].offset=a+"%"}
}
return b}
),bb=function(a,b,c,e){
	if(k.is(a,"string")||k.is(a,"object")){
	a=k.is(a,"string")?y.getElementById(a):a;
	if(a.tagName)return b==null?{
	container:a,width:a.style.pixelWidth||a.offsetWidth,height:a.style.pixelHeight||a.offsetHeight}
:{
	container:a,width:b,height:c}
}
else return{
	container:1,x:a,y:b,width:c,height:e}
}
,Oa=function(a,b){
	var c=this;
	for(var e in b)if(b[u](e)&&!(e in a))switch(typeof b[e]){
	case "function":(function(f){
	a[e]=a===c?f:function(){
	return f[M](c,arguments)}
}
)(b[e]);
	break;
	case "object":a[e]=a[e]||{
}
;
	Oa.call(this,a[e],b[e]);
	break;
	default:a[e]=b[e];
	break}
}
,ta=function(a,b){
	a==b.top&&(b.top=a.prev);
	a==b.bottom&&(b.bottom=a.next);
	a.next&&(a.next.prev=a.prev);
	a.prev&&(a.prev.next=a.next)}
,cb=function(a,b){
	if(b.top!==a){
	ta(a,b);
	a.next=null;
	a.prev=b.top;
	b.top.next=a;
	b.top=a}
}
,db=function(a,b){
	if(b.bottom!==a){
	ta(a,b);
	a.next=b.bottom;
	a.prev=null;
	b.bottom.prev=a;
	b.bottom=a}
}
,eb=function(a,b,c){
	ta(a,c);
	b==c.top&&(c.top=a);
	b.next&&(b.next.prev=a);
	a.next=b.next;
	a.prev=b;
	b.next=a}
,fb=function(a,b,c){
	ta(a,c);
	b==c.bottom&&(c.bottom=a);
	b.prev&&(b.prev.next=a);
	a.prev=b.prev;
	b.prev=a;
	a.next=b}
,gb=function(a){
	return function(){
	throw new Error("Rapha\u00ebl:you are calling to method \u201c"+a+"\u201d of removed object");
}
}
;
	k.pathToRelative=Na;
	if(k.svg){
	P.svgns="http://www.w3.org/2000/svg";
	P.xlink="http://www.w3.org/1999/xlink";
	Z=function(a){
	return+a+(~~a===a)*0.5}
;
	var B=function(a,b){
	if(b)for(var c in b)b[u](c)&&a.setAttribute(c,D(b[c]));
	else{
	a=y.createElementNS(P.svgns,a);
	a.style.webkitTapHighlightColor="rgba(0,0,0,0)";
	return a}
}
;
	k[ka]=function(){
	return"Your browser supports SVG.\nYou are running Rapha\u00ebl "+this.version}
;
	var hb=function(a,b){
	var c=B("path");
	b.canvas&&b.canvas.appendChild(c);
	b=new L(c,b);
	b.type="path";
	ma(b,{
	fill:"none",stroke:"#000",path:a}
);
	return b}
,va=function(a,b,c){
	var e="linear",f=0.5,d=0.5,g=a.style;
	b=D(b).replace(Xa,function(l,m,n){
	e="radial";
	if(m&&n){
	f=F(m);
	d=F(n);
	l=(d>0.5)*2-1;
	Q(f-0.5,2)+Q(d-0.5,2)>0.25&&(d=G.sqrt(0.25-Q(f-0.5,2))*l+0.5)&&d!=0.5&&(d=d.toFixed(5)-1.0E-5*l)}
return""}
);
	b=b.split(/\s*\-\s*/
);
	if(e=="linear"){
	var h=b.shift();
	h=-F(h);
	if(isNaN(h))return null;
	h=[0,0,G.cos(h*aa/180),G.sin(h*aa/180)];
	var j=1/(ca(W(h[2]),W(h[3]))||1);
	h[2]*=j;
	h[3]*=j;
	if(h[2]<0){
	h[0]=-h[2];
	h[2]=0}
if(h[3]<0){
	h[1]=-h[3];
	h[3]=0}
}
b=ab(b);
	if(!b)return null;
	j=a.getAttribute("fill");
	(j=j.match(/^url\(#(.*)\)$/))&&c.defs.removeChild(y.getElementById(j[1]));
	j=B(e+"Gradient");
	j.id=t();
	B(j,e=="radial"?{
	fx:f,fy:d}
:{
	x1:h[0],y1:h[1],x2:h[2],y2:h[3]}
);
	c.defs.appendChild(j);
	c=0;
	for(h=b[v];
	c<h;
	c++){
	var i=B("stop");
	B(i,{
	offset:b[c].offset?b[c].offset:c?"100%":"0%","stop-color":b[c].color||"#fff"}
);
	j.appendChild(i)}
B(a,{
	fill:"url(#"+j.id+")",opacity:1,"fill-opacity":1}
);
	g.fill="";
	g.opacity=1;
	return g.fillOpacity=1}
,Pa=function(a){
	var b=a.getBBox();
	B(a.pattern,{
	patternTransform:k.format("translate({
	0}
,{
	1}
)",b.x,b.y)}
)}
,ma=function(a,b){
	var c={
	"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]}
,e=a.node,f=a.attrs,d=a.rotate(),g=function(s,z){
	if(z=c[pa.call(z)]){
	var E=s.attrs["stroke-width"]||"1";
	s={
	round:E,square:E,butt:0}
[s.attrs["stroke-linecap"]||b["stroke-linecap"]]||0;
	for(var A=[],R=z[v];
	R--;
	)A[R]=z[R]*E+(R%2?1:-1)*s;
	B(e,{
	"stroke-dasharray":A[Y](",")}
)}
}
;
	b[u]("rotation")&&(d=b.rotation);
	var h=D(d).split(C);
	if(h.length-1){
	h[1]=+h[1];
	h[2]=+h[2]}
else h=null;
	F(d)&&a.rotate(0,true);
	for(var j in b)if(b[u](j))if(za[u](j)){
	var i=b[j];
	f[j]=i;
	switch(j){
	case "blur":a.blur(i);
	break;
	case "rotation":a.rotate(i,true);
	break;
	case "href":case "title":case "target":var l=e.parentNode;
	if(pa.call(l.tagName)!="a"){
	var m=B("a");
	l.insertBefore(m,e);
	m.appendChild(e);
	l=m}
j=="target"&&i=="blank"?l.setAttributeNS(a.paper.xlink,"show","new"):l.setAttributeNS(a.paper.xlink,j,i);
	break;
	case "cursor":e.style.cursor=i;
	break;
	case "clip-rect":l=D(i).split(C);
	if(l[v]==4){
	a.clip&&a.clip.parentNode.parentNode.removeChild(a.clip.parentNode);
	var n=B("clipPath");
	m=B("rect");
	n.id=t();
	B(m,{
	x:l[0],y:l[1],width:l[2],height:l[3]}
);
	n.appendChild(m);
	a.paper.defs.appendChild(n);
	B(e,{
	"clip-path":"url(#"+n.id+")"}
);
	a.clip=m}
if(!i){
	(i=y.getElementById(e.getAttribute("clip-path").replace(/(^url\(#|\)$)/g,"")))&&i.parentNode.removeChild(i);
	B(e,{
	"clip-path":""}
);
	delete a.clip}
break;
	case "path":a.type=="path"&&B(e,{
	d:i?(f.path=ua(i)):"M0,0"}
);
	break;
	case "width":e.setAttribute(j,i);
	if(f.fx){
	j="x";
	i=f.x}
else break;
	case "x":f.fx&&(i=-f.x-(f.width||0));
	case "rx":if(j=="rx"&&a.type=="rect")break;
	case "cx":h&&(j=="x"||j=="cx")&&(h[1]+=i-f[j]);
	e.setAttribute(j,i);
	a.pattern&&Pa(a);
	break;
	case "height":e.setAttribute(j,i);
	if(f.fy){
	j="y";
	i=f.y}
else break;
	case "y":f.fy&&(i=-f.y-(f.height||0));
	case "ry":if(j=="ry"&&a.type=="rect")break;
	case "cy":h&&(j=="y"||j=="cy")&&(h[2]+=i-f[j]);
	e.setAttribute(j,i);
	a.pattern&&Pa(a);
	break;
	case "r":a.type=="rect"?B(e,{
	rx:i,ry:i}
):e.setAttribute(j,i);
	break;
	case "src":a.type=="image"&&e.setAttributeNS(a.paper.xlink,"href",i);
	break;
	case "stroke-width":e.style.strokeWidth=i;
	e.setAttribute(j,i);
	f["stroke-dasharray"]&&g(a,f["stroke-dasharray"]);
	break;
	case "stroke-dasharray":g(a,i);
	break;
	case "translation":i=D(i).split(C);
	i[0]=+i[0]||0;
	i[1]=+i[1]||0;
	if(h){
	h[1]+=i[0];
	h[2]+=i[1]}
Ga.call(a,i[0],i[1]);
	break;
	case "scale":i=D(i).split(C);
	a.scale(+i[0]||1,+i[1]||+i[0]||1,isNaN(F(i[2]))?null:+i[2],isNaN(F(i[3]))?null:+i[3]);
	break;
	case "fill":if(l=D(i).match(Wa)){
	n=B("pattern");
	var o=B("image");
	n.id=t();
	B(n,{
	x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}
);
	B(o,{
	x:0,y:0}
);
	o.setAttributeNS(a.paper.xlink,"href",l[1]);
	n.appendChild(o);
	i=y.createElement("img");
	i.style.cssText="position:absolute;
	left:-9999em;
	top-9999em";
	i.onload=function(){
	B(n,{
	width:this.offsetWidth,height:this.offsetHeight}
);
	B(o,{
	width:this.offsetWidth,height:this.offsetHeight}
);
	y.body.removeChild(this);
	a.paper.safari()}
;
	y.body.appendChild(i);
	i.src=l[1];
	a.paper.defs.appendChild(n);
	e.style.fill="url(#"+n.id+")";
	B(e,{
	fill:"url(#"+n.id+")"}
);
	a.pattern=n;
	a.pattern&&Pa(a);
	break}
l=k.getRGB(i);
	if(l.error)if(({
	circle:1,ellipse:1}
[u](a.type)||D(i).charAt()!="r")&&va(e,i,a.paper)){
	f.gradient=i;
	f.fill="none";
	break}
else{
	delete b.gradient;
	delete f.gradient;
	!k.is(f.opacity,"undefined")&&k.is(b.opacity,"undefined")&&B(e,{
	opacity:f.opacity}
);
	!k.is(f["fill-opacity"],"undefined")&&k.is(b["fill-opacity"],"undefined")&&B(e,{
	"fill-opacity":f["fill-opacity"]}
)}
l[u]("opacity")&&B(e,{
	"fill-opacity":l.opacity>1?l.opacity/100:l.opacity}
);
	case "stroke":l=k.getRGB(i);
	e.setAttribute(j,l.hex);
	j=="stroke"&&l[u]("opacity")&&B(e,{
	"stroke-opacity":l.opacity>1?l.opacity/100:l.opacity}
);
	break;
	case "gradient":(({
	circle:1,ellipse:1}
)[u](a.type)||D(i).charAt()!="r")&&va(e,i,a.paper);
	break;
	case "opacity":f.gradient&&!f[u]("stroke-opacity")&&B(e,{
	"stroke-opacity":i>1?i/100:i}
);
	case "fill-opacity":if(f.gradient){
	if(l=y.getElementById(e.getAttribute("fill").replace(/^url\(#|\)$/g,""))){
	l=l.getElementsByTagName("stop");
	l[l[v]-1].setAttribute("stop-opacity",i)}
break}
default:j=="font-size"&&(i=la(i,10)+"px");
	l=j.replace(/(\-.)/g,function(s){
	return ya.call(s.substring(1))}
);
	e.style[l]=i;
	e.setAttribute(j,i);
	break}
}
Fb(a,b);
	h?a.rotate(h.join(V)):F(d)&&a.rotate(d,true)}
,Fb=function(a,b){
	if(!(a.type!="text"||!(b[u]("text")||b[u]("font")||b[u]("font-size")||b[u]("x")||b[u]("y")))){
	var c=a.attrs,e=a.node,f=e.firstChild?la(y.defaultView.getComputedStyle(e.firstChild,"").getPropertyValue("font-size"),10):10;
	if(b[u]("text")){
	for(c.text=b.text;
	e.firstChild;
	)e.removeChild(e.firstChild);
	b=D(b.text).split("\n");
	for(var d=0,g=b[v];
	d<g;
	d++)if(b[d]){
	var h=B("tspan");
	d&&B(h,{
	dy:f*1.2,x:c.x}
);
	h.appendChild(y.createTextNode(b[d]));
	e.appendChild(h)}
}
else{
	b=e.getElementsByTagName("tspan");
	d=0;
	for(g=b[v];
	d<g;
	d++)d&&B(b[d],{
	dy:f*1.2,x:c.x}
)}
B(e,{
	y:c.y}
);
	a=a.getBBox();
	(a=c.y-(a.y+a.height/2))&&k.is(a,"finite")&&B(e,{
	y:c.y+a}
)}
}
,L=function(a,b){
	this[0]=a;
	this.id=k._oid++;
	this.node=a;
	a.raphael=this;
	this.paper=b;
	this.attrs=this.attrs||{
}
;
	this.transformations=[];
	this._={
	tx:0,ty:0,rt:{
	deg:0,cx:0,cy:0}
,sx:1,sy:1}
;
	!b.bottom&&(b.bottom=this);
	(this.prev=b.top)&&(b.top.next=this);
	b.top=this;
	this.next=null}
,I=L[p];
	L[p].rotate=function(a,b,c){
	if(this.removed)return this;
	if(a==null){
	if(this._.rt.cx)return[this._.rt.deg,this._.rt.cx,this._.rt.cy][Y](V);
	return this._.rt.deg}
var e=this.getBBox();
	a=D(a).split(C);
	if(a[v]-1){
	b=F(a[1]);
	c=F(a[2])}
a=F(a[0]);
	b!=null&&b!==false?(this._.rt.deg=a):(this._.rt.deg+=a);
	c==null&&(b=null);
	this._.rt.cx=b;
	this._.rt.cy=c;
	b=b==null?e.x+e.width/2:b;
	c=c==null?e.y+e.height/2:c;
	if(this._.rt.deg){
	this.transformations[0]=k.format("rotate({
	0}
{
	1}
{
	2}
)",this._.rt.deg,b,c);
	this.clip&&B(this.clip,{
	transform:k.format("rotate({
	0}
{
	1}
{
	2}
)",-this._.rt.deg,b,c)}
)}
else{
	this.transformations[0]="";
	this.clip&&B(this.clip,{
	transform:""}
)}
B(this.node,{
	transform:this.transformations[Y](V)}
);
	return this}
;
	L[p].hide=function(){
	!this.removed&&(this.node.style.display="none");
	return this}
;
	L[p].show=function(){
	!this.removed&&(this.node.style.display="");
	return this}
;
	L[p].remove=function(){
	if(!this.removed){
	ta(this,this.paper);
	this.node.parentNode.removeChild(this.node);
	for(var a in this)delete this[a];
	this.removed=true}
}
;
	L[p].getBBox=function(){
	if(this.removed)return this;
	if(this.type=="path")return Da(this.attrs.path);
	if(this.node.style.display=="none"){
	this.show();
	var a=true}
var b={
}
;
	try{
	b=this.node.getBBox()}
catch(c){
}
finally{
	b=b||{
}
}
if(this.type=="text"){
	b={
	x:b.x,y:Infinity,width:0,height:0}
;
	for(var e=0,f=this.node.getNumberOfChars();
	e<f;
	e++){
	var d=this.node.getExtentOfChar(e);
	d.y<b.y&&(b.y=d.y);
	d.y+d.height-b.y>b.height&&(b.height=d.y+d.height-b.y);
	d.x+d.width-b.x>b.width&&(b.width=d.x+d.width-b.x)}
}
a&&this.hide();
	return b}
;
	L[p].attr=function(a,b){
	if(this.removed)return this;
	if(a==null){
	a={
}
;
	for(var c in this.attrs)this.attrs[u](c)&&(a[c]=this.attrs[c]);
	this._.rt.deg&&(a.rotation=this.rotate());
	(this._.sx!=1||this._.sy!=1)&&(a.scale=this.scale());
	a.gradient&&a.fill=="none"&&(a.fill=a.gradient)&&delete a.gradient;
	return a}
if(b==null&&k.is(a,"string")){
	if(a=="translation")return Ga.call(this);
	if(a=="rotation")return this.rotate();
	if(a=="scale")return this.scale();
	if(a=="fill"&&this.attrs.fill=="none"&&this.attrs.gradient)return this.attrs.gradient;
	return this.attrs[a]}
if(b==null&&k.is(a,da)){
	c={
}
;
	for(var e=0,f=a.length;
	e<f;
	e++)c[a[e]]=this.attr(a[e]);
	return c}
if(b!=null){
	e={
}
;
	e[a]=b}
else a!=null&&k.is(a,"object")&&(e=a);
	for(f in this.paper.customAttributes)if(this.paper.customAttributes[u](f)&&e[u](f)&&k.is(this.paper.customAttributes[f],"function")){
	a=this.paper.customAttributes[f].apply(this,[].concat(e[f]));
	this.attrs[f]=e[f];
	for(var d in a)a[u](d)&&(e[d]=a[d])}
ma(this,e);
	return this}
;
	L[p].toFront=function(){
	if(this.removed)return this;
	this.node.parentNode.appendChild(this.node);
	var a=this.paper;
	a.top!=this&&cb(this,a);
	return this}
;
	L[p].toBack=function(){
	if(this.removed)return this;
	if(this.node.parentNode.firstChild!=this.node){
	this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);
	db(this,this.paper)}
return this}
;
	L[p].insertAfter=function(a){
	if(this.removed)return this;
	var b=a.node||a[a.length-1].node;
	b.nextSibling?b.parentNode.insertBefore(this.node,b.nextSibling):b.parentNode.appendChild(this.node);
	eb(this,a,this.paper);
	return this}
;
	L[p].insertBefore=function(a){
	if(this.removed)return this;
	var b=a.node||a[0].node;
	b.parentNode.insertBefore(this.node,b);
	fb(this,a,this.paper);
	return this}
;
	L[p].blur=function(a){
	if(+a!==0){
	var b=B("filter"),c=B("feGaussianBlur");
	this.attrs.blur=a;
	b.id=t();
	B(c,{
	stdDeviation:+a||1.5}
);
	b.appendChild(c);
	this.paper.defs.appendChild(b);
	this._blur=b;
	B(this.node,{
	filter:"url(#"+b.id+")"}
)}
else{
	if(this._blur){
	this._blur.parentNode.removeChild(this._blur);
	delete this._blur;
	delete this.attrs.blur}
this.node.removeAttribute("filter")}
}
;
	var ib=function(a,b,c,e){
	var f=B("circle");
	a.canvas&&a.canvas.appendChild(f);
	a=new L(f,a);
	a.attrs={
	cx:b,cy:c,r:e,fill:"none",stroke:"#000"}
;
	a.type="circle";
	B(f,a.attrs);
	return a}
,jb=function(a,b,c,e,f,d){
	var g=B("rect");
	a.canvas&&a.canvas.appendChild(g);
	a=new L(g,a);
	a.attrs={
	x:b,y:c,width:e,height:f,r:d||0,rx:d||0,ry:d||0,fill:"none",stroke:"#000"}
;
	a.type="rect";
	B(g,a.attrs);
	return a}
,kb=function(a,b,c,e,f){
	var d=B("ellipse");
	a.canvas&&a.canvas.appendChild(d);
	a=new L(d,a);
	a.attrs={
	cx:b,cy:c,rx:e,ry:f,fill:"none",stroke:"#000"}
;
	a.type="ellipse";
	B(d,a.attrs);
	return a}
,lb=function(a,b,c,e,f,d){
	var g=B("image");
	B(g,{
	x:c,y:e,width:f,height:d,preserveAspectRatio:"none"}
);
	g.setAttributeNS(a.xlink,"href",b);
	a.canvas&&a.canvas.appendChild(g);
	a=new L(g,a);
	a.attrs={
	x:c,y:e,width:f,height:d,src:b}
;
	a.type="image";
	return a}
,mb=function(a,b,c,e){
	var f=B("text");
	B(f,{
	x:b,y:c,"text-anchor":"middle"}
);
	a.canvas&&a.canvas.appendChild(f);
	a=new L(f,a);
	a.attrs={
	x:b,y:c,"text-anchor":"middle",text:e,font:za.font,stroke:"none",fill:"#000"}
;
	a.type="text";
	ma(a,a.attrs);
	return a}
,nb=function(a,b){
	this.width=a||this.width;
	this.height=b||this.height;
	this.canvas.setAttribute("width",this.width);
	this.canvas.setAttribute("height",this.height);
	return this}
,Ja=function(){
	var a=bb[M](0,arguments),b=a&&a.container,c=a.x,e=a.y,f=a.width;
	a=a.height;
	if(!b)throw new Error("SVG container not found.");
	var d=B("svg");
	c=c||0;
	e=e||0;
	f=f||512;
	a=a||342;
	B(d,{
	xmlns:"http://www.w3.org/2000/svg",version:1.1,width:f,height:a}
);
	if(b==1){
	d.style.cssText="position:absolute;
	left:"+c+"px;
	top:"+e+"px";
	y.body.appendChild(d)}
else b.firstChild?b.insertBefore(d,b.firstChild):b.appendChild(d);
	b=new na;
	b.width=f;
	b.height=a;
	b.canvas=d;
	Oa.call(b,b,k.fn);
	b.clear();
	return b}
;
	P.clear=function(){
	for(var a=this.canvas;
	a.firstChild;
	)a.removeChild(a.firstChild);
	this.bottom=this.top=null;
	(this.desc=B("desc")).appendChild(y.createTextNode("Created with Rapha\u00ebl"));
	a.appendChild(this.desc);
	a.appendChild(this.defs=B("defs"))}
;
	P.remove=function(){
	this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);
	for(var a in this)this[a]=gb(a)}
}
if(k.vml){
	var ob={
	M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"}
,Gb=/([clmz]),?([^clmz]*)/gi,Hb=/ progid:\S+Blur\([^\)]+\)/g,Ib=/-?[^,\s-]+/g,wa=1E3+V+1E3,xa={
	path:1,rect:1}
,Jb=function(a){
	var b=/[ahqstv]/ig,c=ua;
	D(a).match(b)&&(c=Ca);
	b=/[clmz]/g;
	if(c==ua&&!D(a).match(b))return a=D(a).replace(Gb,function(j,i,l){
	var m=[],n=pa.call(i)=="m",o=ob[i];
	l.replace(Ib,function(s){
	if(n&&m[v]==2){
	o+=m+ob[i=="m"?"l":"L"];
	m=[]}
m[N](Z(s*10))}
);
	return o+m}
);
	b=c(a);
	var e;
	a=[];
	for(var f=0,d=b[v];
	f<d;
	f++){
	c=b[f];
	e=pa.call(b[f][0]);
	e=="z"&&(e="x");
	for(var g=1,h=c[v];
	g<h;
	g++)e+=Z(c[g]*10)+(g!=h-1?",":"");
	a[N](e)}
return a[Y](V)}
;
	k[ka]=function(){
	return"Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\u00ebl "+this.version}
;
	hb=function(a,b){
	var c=ba("group");
	c.style.cssText="position:absolute;
	left:0;
	top:0;
	width:"+b.width+"px;
	height:"+b.height+"px";
	c.coordsize=b.coordsize;
	c.coordorigin=b.coordorigin;
	var e=ba("shape"),f=e.style;
	f.width=b.width+"px";
	f.height=b.height+"px";
	e.coordsize=wa;
	e.coordorigin=b.coordorigin;
	c.appendChild(e);
	e=new L(e,c,b);
	f={
	fill:"none",stroke:"#000"}
;
	a&&(f.path=a);
	e.type="path";
	e.path=[];
	e.Path="";
	ma(e,f);
	b.canvas.appendChild(c);
	return e}
;
	ma=function(a,b){
	a.attrs=a.attrs||{
}
;
	var c=a.node,e=a.attrs,f=c.style,d;
	d=(b.x!=e.x||b.y!=e.y||b.width!=e.width||b.height!=e.height||b.r!=e.r)&&a.type=="rect";
	for(var g in b)b[u](g)&&(e[g]=b[g]);
	if(d){
	e.path=pb(e.x,e.y,e.width,e.height,e.r);
	a.X=e.x;
	a.Y=e.y;
	a.W=e.width;
	a.H=e.height}
b.href&&(c.href=b.href);
	b.title&&(c.title=b.title);
	b.target&&(c.target=b.target);
	b.cursor&&(f.cursor=b.cursor);
	"blur"in b&&a.blur(b.blur);
	if(b.path&&a.type=="path"||d)c.path=Jb(e.path);
	b.rotation!=null&&a.rotate(b.rotation,true);
	if(b.translation){
	d=D(b.translation).split(C);
	Ga.call(a,d[0],d[1]);
	if(a._.rt.cx!=null){
	a._.rt.cx+=+d[0];
	a._.rt.cy+=+d[1];
	a.setBox(a.attrs,d[0],d[1])}
}
if(b.scale){
	d=D(b.scale).split(C);
	a.scale(+d[0]||1,+d[1]||+d[0]||1,+d[2]||null,+d[3]||null)}
if("clip-rect"in b){
	d=D(b["clip-rect"]).split(C);
	if(d[v]==4){
	d[2]=+d[2]+ +d[0];
	d[3]=+d[3]+ +d[1];
	g=c.clipRect||y.createElement("div");
	var h=g.style,j=c.parentNode;
	h.clip=k.format("rect({
	1}
px{
	2}
px{
	3}
px{
	0}
px)",d);
	if(!c.clipRect){
	h.position="absolute";
	h.top=0;
	h.left=0;
	h.width=a.paper.width+"px";
	h.height=a.paper.height+"px";
	j.parentNode.insertBefore(g,j);
	g.appendChild(j);
	c.clipRect=g}
}
b["clip-rect"]||c.clipRect&&(c.clipRect.style.clip="")}
a.type=="image"&&b.src&&(c.src=b.src);
	if(a.type=="image"&&b.opacity){
	c.filterOpacity=" progid:DXImageTransform.Microsoft.Alpha(opacity="+b.opacity*100+")";
	f.filter=(c.filterMatrix||"")+(c.filterOpacity||"")}
b.font&&(f.font=b.font);
	b["font-family"]&&(f.fontFamily='"'+b["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g,"")+'"');
	b["font-size"]&&(f.fontSize=b["font-size"]);
	b["font-weight"]&&(f.fontWeight=b["font-weight"]);
	b["font-style"]&&(f.fontStyle=b["font-style"]);
	if(b.opacity!=null||b["stroke-width"]!=null||b.fill!=null||b.stroke!=null||b["stroke-width"]!=null||b["stroke-opacity"]!=null||b["fill-opacity"]!=null||b["stroke-dasharray"]!=null||b["stroke-miterlimit"]!=null||b["stroke-linejoin"]!=null||b["stroke-linecap"]!=null){
	c=a.shape||c;
	d=c.getElementsByTagName("fill")&&c.getElementsByTagName("fill")[0];
	g=false;
	!d&&(g=d=ba("fill"));
	if("fill-opacity"in b||"opacity"in b){
	f=((+e["fill-opacity"]+1||2)-1)*((+e.opacity+1||2)-1)*((+k.getRGB(b.fill).o+1||2)-1);
	f=ja(ca(f,0),1);
	d.opacity=f}
b.fill&&(d.on=true);
	if(d.on==null||b.fill=="none")d.on=false;
	if(d.on&&b.fill)if(f=b.fill.match(Wa)){
	d.src=f[1];
	d.type="tile"}
else{
	d.color=k.getRGB(b.fill).hex;
	d.src="";
	d.type="solid";
	if(k.getRGB(b.fill).error&&(a.type in{
	circle:1,ellipse:1}
||D(b.fill).charAt()!="r")&&va(a,b.fill)){
	e.fill="none";
	e.gradient=b.fill}
}
g&&c.appendChild(d);
	d=c.getElementsByTagName("stroke")&&c.getElementsByTagName("stroke")[0];
	g=false;
	!d&&(g=d=ba("stroke"));
	if(b.stroke&&b.stroke!="none"||b["stroke-width"]||b["stroke-opacity"]!=null||b["stroke-dasharray"]||b["stroke-miterlimit"]||b["stroke-linejoin"]||b["stroke-linecap"])d.on=true;
	(b.stroke=="none"||d.on==null||b.stroke==0||b["stroke-width"]==0)&&(d.on=false);
	f=k.getRGB(b.stroke);
	d.on&&b.stroke&&(d.color=f.hex);
	f=((+e["stroke-opacity"]+1||2)-1)*((+e.opacity+1||2)-1)*((+f.o+1||2)-1);
	h=(F(b["stroke-width"])||1)*0.75;
	f=ja(ca(f,0),1);
	b["stroke-width"]==null&&(h=e["stroke-width"]);
	b["stroke-width"]&&(d.weight=h);
	h&&h<1&&(f*=h)&&(d.weight=1);
	d.opacity=f;
	b["stroke-linejoin"]&&(d.joinstyle=b["stroke-linejoin"]||"miter");
	d.miterlimit=b["stroke-miterlimit"]||8;
	b["stroke-linecap"]&&(d.endcap=b["stroke-linecap"]=="butt"?"flat":b["stroke-linecap"]=="square"?"square":"round");
	if(b["stroke-dasharray"]){
	f={
	"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"}
;
	d.dashstyle=f[u](b["stroke-dasharray"])?f[b["stroke-dasharray"]]:""}
g&&c.appendChild(d)}
if(a.type=="text"){
	f=a.paper.span.style;
	e.font&&(f.font=e.font);
	e["font-family"]&&(f.fontFamily=e["font-family"]);
	e["font-size"]&&(f.fontSize=e["font-size"]);
	e["font-weight"]&&(f.fontWeight=e["font-weight"]);
	e["font-style"]&&(f.fontStyle=e["font-style"]);
	a.node.string&&(a.paper.span.innerHTML=D(a.node.string).replace(/</g,"&#60;
	").replace(/&/g,"&#38;
	").replace(/\n/g,"<br>"));
	a.W=e.w=a.paper.span.offsetWidth;
	a.H=e.h=a.paper.span.offsetHeight;
	a.X=e.x;
	a.Y=e.y+Z(a.H/2);
	switch(e["text-anchor"]){
	case "start":a.node.style["v-text-align"]="left";
	a.bbx=Z(a.W/2);
	break;
	case "end":a.node.style["v-text-align"]="right";
	a.bbx=-Z(a.W/2);
	break;
	default:a.node.style["v-text-align"]="center";
	break}
}
}
;
	va=function(a,b){
	a.attrs=a.attrs||{
}
;
	var c="linear",e=".5 .5";
	a.attrs.gradient=b;
	b=D(b).replace(Xa,function(j,i,l){
	c="radial";
	if(i&&l){
	i=F(i);
	l=F(l);
	Q(i-0.5,2)+Q(l-0.5,2)>0.25&&(l=G.sqrt(0.25-Q(i-0.5,2))*((l>0.5)*2-1)+0.5);
	e=i+V+l}
return""}
);
	b=b.split(/\s*\-\s*/
);
	if(c=="linear"){
	var f=b.shift();
	f=-F(f);
	if(isNaN(f))return null}
var d=ab(b);
	if(!d)return null;
	a=a.shape||a.node;
	b=a.getElementsByTagName("fill")[0]||ba("fill");
	!b.parentNode&&a.appendChild(b);
	if(d[v]){
	b.on=true;
	b.method="none";
	b.color=d[0].color;
	b.color2=d[d[v]-1].color;
	a=[];
	for(var g=0,h=d[v];
	g<h;
	g++)d[g].offset&&a[N](d[g].offset+V+d[g].color);
	b.colors&&(b.colors.value=a[v]?a[Y]():"0% "+b.color);
	if(c=="radial"){
	b.type="gradientradial";
	b.focus="100%";
	b.focussize=e;
	b.focusposition=e}
else{
	b.type="gradient";
	b.angle=(270-f)%360}
}
return 1}
;
	L=function(a,b,c){
	this[0]=a;
	this.id=k._oid++;
	this.node=a;
	a.raphael=this;
	this.Y=this.X=0;
	this.attrs={
}
;
	this.Group=b;
	this.paper=c;
	this._={
	tx:0,ty:0,rt:{
	deg:0}
,sx:1,sy:1}
;
	!c.bottom&&(c.bottom=this);
	(this.prev=c.top)&&(c.top.next=this);
	c.top=this;
	this.next=null}
;
	I=L[p];
	I.rotate=function(a,b,c){
	if(this.removed)return this;
	if(a==null){
	if(this._.rt.cx)return[this._.rt.deg,this._.rt.cx,this._.rt.cy][Y](V);
	return this._.rt.deg}
a=D(a).split(C);
	if(a[v]-1){
	b=F(a[1]);
	c=F(a[2])}
a=F(a[0]);
	b!=null?(this._.rt.deg=a):(this._.rt.deg+=a);
	c==null&&(b=null);
	this._.rt.cx=b;
	this._.rt.cy=c;
	this.setBox(this.attrs,b,c);
	this.Group.style.rotation=this._.rt.deg;
	return this}
;
	I.setBox=function(a,b,c){
	if(this.removed)return this;
	var e=this.Group.style,f=this.shape&&this.shape.style||this.node.style;
	a=a||{
}
;
	for(var d in a)a[u](d)&&(this.attrs[d]=a[d]);
	b=b||this._.rt.cx;
	c=c||this._.rt.cy;
	var g=this.attrs,h;
	switch(this.type){
	case "circle":a=g.cx-g.r;
	d=g.cy-g.r;
	h=g=g.r*2;
	break;
	case "ellipse":a=g.cx-g.rx;
	d=g.cy-g.ry;
	h=g.rx*2;
	g=g.ry*2;
	break;
	case "image":a=+g.x;
	d=+g.y;
	h=g.width||0;
	g=g.height||0;
	break;
	case "text":this.textpath.v=["m",Z(g.x),",",Z(g.y-2),"l",Z(g.x)+1,",",Z(g.y-2)][Y]("");
	a=g.x-Z(this.W/2);
	d=g.y-this.H/2;
	h=this.W;
	g=this.H;
	break;
	case "rect":case "path":if(this.attrs.path){
	g=Da(this.attrs.path);
	a=g.x;
	d=g.y;
	h=g.width;
	g=g.height}
else{
	d=a=0;
	h=this.paper.width;
	g=this.paper.height}
break;
	default:d=a=0;
	h=this.paper.width;
	g=this.paper.height;
	break}
b=b==null?a+h/2:b;
	c=c==null?d+g/2:c;
	b=b-this.paper.width/2;
	c=c-this.paper.height/2;
	var j;
	e.left!=(j=b+"px")&&(e.left=j);
	e.top!=(j=c+"px")&&(e.top=j);
	this.X=xa[u](this.type)?-b:a;
	this.Y=xa[u](this.type)?-c:d;
	this.W=h;
	this.H=g;
	if(xa[u](this.type)){
	f.left!=(j=-b*10+"px")&&(f.left=j);
	f.top!=(j=-c*10+"px")&&(f.top=j)}
else if(this.type=="text"){
	f.left!=(j=-b+"px")&&(f.left=j);
	f.top!=(j=-c+"px")&&(f.top=j)}
else{
	e.width!=(j=this.paper.width+"px")&&(e.width=j);
	e.height!=(j=this.paper.height+"px")&&(e.height=j);
	f.left!=(j=a-b+"px")&&(f.left=j);
	f.top!=(j=d-c+"px")&&(f.top=j);
	f.width!=(j=h+"px")&&(f.width=j);
	f.height!=(j=g+"px")&&(f.height=j)}
}
;
	I.hide=function(){
	!this.removed&&(this.Group.style.display="none");
	return this}
;
	I.show=function(){
	!this.removed&&(this.Group.style.display="block");
	return this}
;
	I.getBBox=function(){
	if(this.removed)return this;
	if(xa[u](this.type))return Da(this.attrs.path);
	return{
	x:this.X+(this.bbx||0),y:this.Y,width:this.W,height:this.H}
}
;
	I.remove=function(){
	if(!this.removed){
	ta(this,this.paper);
	this.node.parentNode.removeChild(this.node);
	this.Group.parentNode.removeChild(this.Group);
	this.shape&&this.shape.parentNode.removeChild(this.shape);
	for(var a in this)delete this[a];
	this.removed=true}
}
;
	I.attr=function(a,b){
	if(this.removed)return this;
	if(a==null){
	a={
}
;
	for(var c in this.attrs)this.attrs[u](c)&&(a[c]=this.attrs[c]);
	this._.rt.deg&&(a.rotation=this.rotate());
	(this._.sx!=1||this._.sy!=1)&&(a.scale=this.scale());
	a.gradient&&a.fill=="none"&&(a.fill=a.gradient)&&delete a.gradient;
	return a}
if(b==null&&k.is(a,"string")){
	if(a=="translation")return Ga.call(this);
	if(a=="rotation")return this.rotate();
	if(a=="scale")return this.scale();
	if(a=="fill"&&this.attrs.fill=="none"&&this.attrs.gradient)return this.attrs.gradient;
	return this.attrs[a]}
if(this.attrs&&b==null&&k.is(a,da)){
	var e,f={
}
;
	c=0;
	for(e=a[v];
	c<e;
	c++)f[a[c]]=this.attr(a[c]);
	return f}
if(b!=null){
	e={
}
;
	e[a]=b}
b==null&&k.is(a,"object")&&(e=a);
	if(e){
	for(f in this.paper.customAttributes)if(this.paper.customAttributes[u](f)&&e[u](f)&&k.is(this.paper.customAttributes[f],"function")){
	c=this.paper.customAttributes[f].apply(this,[].concat(e[f]));
	this.attrs[f]=e[f];
	for(var d in c)c[u](d)&&(e[d]=c[d])}
e.text&&this.type=="text"&&(this.node.string=e.text);
	ma(this,e);
	e.gradient&&({
	circle:1,ellipse:1}
[u](this.type)||D(e.gradient).charAt()!="r")&&va(this,e.gradient);
	(!xa[u](this.type)||this._.rt.deg)&&this.setBox(this.attrs)}
return this}
;
	I.toFront=function(){
	!this.removed&&this.Group.parentNode.appendChild(this.Group);
	this.paper.top!=this&&cb(this,this.paper);
	return this}
;
	I.toBack=function(){
	if(this.removed)return this;
	if(this.Group.parentNode.firstChild!=this.Group){
	this.Group.parentNode.insertBefore(this.Group,this.Group.parentNode.firstChild);
	db(this,this.paper)}
return this}
;
	I.insertAfter=function(a){
	if(this.removed)return this;
	a.constructor==ea&&(a=a[a.length-1]);
	a.Group.nextSibling?a.Group.parentNode.insertBefore(this.Group,a.Group.nextSibling):a.Group.parentNode.appendChild(this.Group);
	eb(this,a,this.paper);
	return this}
;
	I.insertBefore=function(a){
	if(this.removed)return this;
	a.constructor==ea&&(a=a[0]);
	a.Group.parentNode.insertBefore(this.Group,a.Group);
	fb(this,a,this.paper);
	return this}
;
	I.blur=function(a){
	var b=this.node.runtimeStyle,c=b.filter;
	c=c.replace(Hb,"");
	if(+a!==0){
	this.attrs.blur=a;
	b.filter=c+V+" progid:DXImageTransform.Microsoft.Blur(pixelradius="+(+a||1.5)+")";
	b.margin=k.format("-{
	0}
px 0 0 -{
	0}
px",Z(+a||1.5))}
else{
	b.filter=c;
	b.margin=0;
	delete this.attrs.blur}
}
;
	ib=function(a,b,c,e){
	var f=ba("group"),d=ba("oval");
	f.style.cssText="position:absolute;
	left:0;
	top:0;
	width:"+a.width+"px;
	height:"+a.height+"px";
	f.coordsize=wa;
	f.coordorigin=a.coordorigin;
	f.appendChild(d);
	d=new L(d,f,a);
	d.type="circle";
	ma(d,{
	stroke:"#000",fill:"none"}
);
	d.attrs.cx=b;
	d.attrs.cy=c;
	d.attrs.r=e;
	d.setBox({
	x:b-e,y:c-e,width:e*2,height:e*2}
);
	a.canvas.appendChild(f);
	return d}
;
	var pb=function(a,b,c,e,f){
	return f?k.format("M{
	0}
,{
	1}
l{
	2}
,0a{
	3}
,{
	3}
,0,0,1,{
	3}
,{
	3}
l0,{
	5}
a{
	3}
,{
	3}
,0,0,1,{
	4}
,{
	3}
l{
	6}
,0a{
	3}
,{
	3}
,0,0,1,{
	4}
,{
	4}
l0,{
	7}
a{
	3}
,{
	3}
,0,0,1,{
	3}
,{
	4}
z",a+f,b,c-f*2,f,-f,e-f*2,f*2-c,f*2-e):k.format("M{
	0}
,{
	1}
l{
	2}
,0,0,{
	3}
,{
	4}
,0z",a,b,c,e,-c)}
;
	jb=function(a,b,c,e,f,d){
	var g=pb(b,c,e,f,d);
	a=a.path(g);
	var h=a.attrs;
	a.X=h.x=b;
	a.Y=h.y=c;
	a.W=h.width=e;
	a.H=h.height=f;
	h.r=d;
	h.path=g;
	a.type="rect";
	return a}
;
	kb=function(a,b,c,e,f){
	var d=ba("group"),g=ba("oval");
	d.style.cssText="position:absolute;
	left:0;
	top:0;
	width:"+a.width+"px;
	height:"+a.height+"px";
	d.coordsize=wa;
	d.coordorigin=a.coordorigin;
	d.appendChild(g);
	g=new L(g,d,a);
	g.type="ellipse";
	ma(g,{
	stroke:"#000"}
);
	g.attrs.cx=b;
	g.attrs.cy=c;
	g.attrs.rx=e;
	g.attrs.ry=f;
	g.setBox({
	x:b-e,y:c-f,width:e*2,height:f*2}
);
	a.canvas.appendChild(d);
	return g}
;
	lb=function(a,b,c,e,f,d){
	var g=ba("group"),h=ba("image");
	g.style.cssText="position:absolute;
	left:0;
	top:0;
	width:"+a.width+"px;
	height:"+a.height+"px";
	g.coordsize=wa;
	g.coordorigin=a.coordorigin;
	h.src=b;
	g.appendChild(h);
	h=new L(h,g,a);
	h.type="image";
	h.attrs.src=b;
	h.attrs.x=c;
	h.attrs.y=e;
	h.attrs.w=f;
	h.attrs.h=d;
	h.setBox({
	x:c,y:e,width:f,height:d}
);
	a.canvas.appendChild(g);
	return h}
;
	mb=function(a,b,c,e){
	var f=ba("group"),d=ba("shape"),g=d.style,h=ba("path"),j=ba("textpath");
	f.style.cssText="position:absolute;
	left:0;
	top:0;
	width:"+a.width+"px;
	height:"+a.height+"px";
	f.coordsize=wa;
	f.coordorigin=a.coordorigin;
	h.v=k.format("m{
	0}
,{
	1}
l{
	2}
,{
	1}
",Z(b*10),Z(c*10),Z(b*10)+1);
	h.textpathok=true;
	g.width=a.width;
	g.height=a.height;
	j.string=D(e);
	j.on=true;
	d.appendChild(j);
	d.appendChild(h);
	f.appendChild(d);
	g=new L(j,f,a);
	g.shape=d;
	g.textpath=h;
	g.type="text";
	g.attrs.text=e;
	g.attrs.x=b;
	g.attrs.y=c;
	g.attrs.w=1;
	g.attrs.h=1;
	ma(g,{
	font:za.font,stroke:"none",fill:"#000"}
);
	g.setBox();
	a.canvas.appendChild(f);
	return g}
;
	nb=function(a,b){
	var c=this.canvas.style;
	a==+a&&(a+="px");
	b==+b&&(b+="px");
	c.width=a;
	c.height=b;
	c.clip="rect(0 "+a+" "+b+" 0)";
	return this}
;
	var ba;
	y.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");
	try{
	!y.namespaces.rvml&&y.namespaces.add("rvml","urn:schemas-microsoft-com:vml");
	ba=function(a){
	return y.createElement("<rvml:"+a+' class="rvml">')}
}
catch(Qb){
	ba=function(a){
	return y.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}
}
Ja=function(){
	var a=bb[M](0,arguments),b=a.container,c=a.height,e=a.width,f=a.x;
	a=a.y;
	if(!b)throw new Error("VML container not found.");
	var d=new na,g=d.canvas=y.createElement("div"),h=g.style;
	f=f||0;
	a=a||0;
	e=e||512;
	c=c||342;
	e==+e&&(e+="px");
	c==+c&&(c+="px");
	d.width=1E3;
	d.height=1E3;
	d.coordsize=1E4+V+1E4;
	d.coordorigin="0 0";
	d.span=y.createElement("span");
	d.span.style.cssText="position:absolute;
	left:-9999em;
	top:-9999em;
	padding:0;
	margin:0;
	line-height:1;
	display:inline;
	";
	g.appendChild(d.span);
	h.cssText=k.format("top:0;
	left:0;
	width:{
	0}
;
	height:{
	1}
;
	display:inline-block;
	position:relative;
	clip:rect(0{
	0}
{
	1}
0);
	overflow:hidden",e,c);
	if(b==1){
	y.body.appendChild(g);
	h.left=f+"px";
	h.top=a+"px";
	h.position="absolute"}
else b.firstChild?b.insertBefore(g,b.firstChild):b.appendChild(g);
	Oa.call(d,d,k.fn);
	return d}
;
	P.clear=function(){
	this.canvas.innerHTML="";
	this.span=y.createElement("span");
	this.span.style.cssText="position:absolute;
	left:-9999em;
	top:-9999em;
	padding:0;
	margin:0;
	line-height:1;
	display:inline;
	";
	this.canvas.appendChild(this.span);
	this.bottom=this.top=null}
;
	P.remove=function(){
	this.canvas.parentNode.removeChild(this.canvas);
	for(var a in this)this[a]=gb(a);
	return true}
}
ga=navigator.userAgent.match(/Version\\x2f(.*?)\s/);
	navigator.vendor=="Apple Computer,Inc."&&(ga&&ga[1]<4||navigator.platform.slice(0,2)=="iP")?(P.safari=function(){
	var a=this.rect(-99,-99,this.width+99,this.height+99).attr({
	stroke:"none"}
);
	H.setTimeout(function(){
	a.remove()}
)}
):(P.safari=function(){
}
);
	var Kb=function(){
	this.returnValue=false}
,Lb=function(){
	return this.originalEvent.preventDefault()}
,Mb=function(){
	this.cancelBubble=true}
,Nb=function(){
	return this.originalEvent.stopPropagation()}
,Ob=function(){
	if(y.addEventListener)return function(a,b,c,e){
	var f=oa&&Ka[b]?Ka[b]:b,d=function(g){
	if(oa&&Ka[u](b))for(var h=0,j=g.targetTouches&&g.targetTouches.length;
	h<j;
	h++)if(g.targetTouches[h].target==a){
	j=g;
	g=g.targetTouches[h];
	g.originalEvent=j;
	g.preventDefault=Lb;
	g.stopPropagation=Nb;
	break}
return c.call(e,g)}
;
	a.addEventListener(f,d,false);
	return function(){
	a.removeEventListener(f,d,false);
	return true}
}
;
	if(y.attachEvent)return function(a,b,c,e){
	var f=function(d){
	d=d||H.event;
	d.preventDefault=d.preventDefault||Kb;
	d.stopPropagation=d.stopPropagation||Mb;
	return c.call(e,d)}
;
	a.attachEvent("on"+b,f);
	return function(){
	a.detachEvent("on"+b,f);
	return true}
}
}
(),ha=[],Qa=function(a){
	for(var b=a.clientX,c=a.clientY,e=y.documentElement.scrollTop||y.body.scrollTop,f=y.documentElement.scrollLeft||y.body.scrollLeft,d,g=ha.length;
	g--;
	){
	d=ha[g];
	if(oa)for(var h=a.touches.length,j;
	h--;
	){
	j=a.touches[h];
	if(j.identifier==d.el._drag.id){
	b=j.clientX;
	c=j.clientY;
	(a.originalEvent?a.originalEvent:a).preventDefault();
	break}
}
else a.preventDefault();
	b+=f;
	c+=e;
	d.move&&d.move.call(d.move_scope||d.el,b-d.el._drag.x,c-d.el._drag.y,b,c,a)}
}
,Ra=function(a){
	k.unmousemove(Qa).unmouseup(Ra);
	for(var b=ha.length,c;
	b--;
	){
	c=ha[b];
	c.el._drag={
}
;
	c.end&&c.end.call(c.end_scope||c.start_scope||c.move_scope||c.el,a)}
ha=[]}
;
	for(ga=sa[v];
	ga--;
	)(function(a){
	k[a]=L[p][a]=function(b,c){
	if(k.is(b,"function")){
	this.events=this.events||[];
	this.events.push({
	name:a,f:b,unbind:Ob(this.shape||this.node||y,a,b,c||this)}
)}
return this}
;
	k["un"+a]=L[p]["un"+a]=function(b){
	for(var c=this.events,e=c[v];
	e--;
	)if(c[e].name==a&&c[e].f==b){
	c[e].unbind();
	c.splice(e,1);
	!c.length&&delete this.events;
	return this}
return this}
}
)(sa[ga]);
	I.hover=function(a,b,c,e){
	return this.mouseover(a,c).mouseout(b,e||c)}
;
	I.unhover=function(a,b){
	return this.unmouseover(a).unmouseout(b)}
;
	I.drag=function(a,b,c,e,f,d){
	this._drag={
}
;
	this.mousedown(function(g){
	(g.originalEvent||g).preventDefault();
	var h=y.documentElement.scrollTop||y.body.scrollTop,j=y.documentElement.scrollLeft||y.body.scrollLeft;
	this._drag.x=g.clientX+j;
	this._drag.y=g.clientY+h;
	this._drag.id=g.identifier;
	b&&b.call(f||e||this,g.clientX+j,g.clientY+h,g);
	!ha.length&&k.mousemove(Qa).mouseup(Ra);
	ha.push({
	el:this,move:a,end:c,move_scope:e,start_scope:f,end_scope:d}
)}
);
	return this}
;
	I.undrag=function(a,b,c){
	for(b=ha.length;
	b--;
	)ha[b].el==this&&ha[b].move==a&&ha[b].end==c&&ha.splice(b++,1);
	!ha.length&&k.unmousemove(Qa).unmouseup(Ra)}
;
	P.circle=function(a,b,c){
	return ib(this,a||0,b||0,c||0)}
;
	P.rect=function(a,b,c,e,f){
	return jb(this,a||0,b||0,c||0,e||0,f||0)}
;
	P.ellipse=function(a,b,c,e){
	return kb(this,a||0,b||0,c||0,e||0)}
;
	P.path=function(a){
	a&&!k.is(a,"string")&&!k.is(a[0],da)&&(a+="");
	return hb(k.format[M](k,arguments),this)}
;
	P.image=function(a,b,c,e,f){
	return lb(this,a||"about:blank",b||0,c||0,e||0,f||0)}
;
	P.text=function(a,b,c){
	return mb(this,a||0,b||0,D(c))}
;
	P.set=function(a){
	arguments[v]>1&&(a=Array[p].splice.call(arguments,0,arguments[v]));
	return new ea(a)}
;
	P.setSize=nb;
	P.top=P.bottom=null;
	P.raphael=k;
	I.resetScale=function(){
	if(this.removed)return this;
	this._.sx=1;
	this._.sy=1;
	this.attrs.scale="1 1"}
;
	I.scale=function(a,b,c,e){
	if(this.removed)return this;
	if(a==null&&b==null)return{
	x:this._.sx,y:this._.sy,toString:w}
;
	b=b||a;
	!+b&&(b=a);
	var f,d,g=this.attrs;
	if(a!=0){
	var h=this.getBBox(),j=h.x+h.width/2,i=h.y+h.height/2;
	f=W(a/this._.sx);
	d=W(b/this._.sy);
	c=+c||c==0?c:j;
	e=+e||e==0?e:i;
	var l=this._.sx>0,m=this._.sy>0;
	h=~~(a/W(a));
	var n=~~(b/W(b)),o=f*h,s=d*n,z=this.node.style;
	j=c+W(j-c)*o*(j>c==l?1:-1);
	i=e+W(i-e)*s*(i>e==m?1:-1);
	var E=a*h>b*n?d:f;
	switch(this.type){
	case "rect":case "image":var A=g.width*f,R=g.height*d;
	this.attr({
	height:R,r:g.r*E,width:A,x:j-A/2,y:i-R/2}
);
	break;
	case "circle":case "ellipse":this.attr({
	rx:g.rx*f,ry:g.ry*d,r:g.r*E,cx:j,cy:i}
);
	break;
	case "text":this.attr({
	x:j,y:i}
);
	break;
	case "path":E=Na(g.path);
	var T=true;
	l=l?o:f;
	m=m?s:d;
	s=0;
	for(o=E[v];
	s<o;
	s++){
	var S=E[s],U=ya.call(S[0]);
	if(!(U=="M"&&T)){
	T=false;
	if(U=="A"){
	S[E[s][v]-2]*=l;
	S[E[s][v]-1]*=m;
	S[1]*=f;
	S[2]*=d;
	S[5]=+(h+n?!!+S[5]:!+S[5])}
else if(U=="H"){
	U=1;
	for(var ra=S[v];
	U<ra;
	U++)S[U]*=l}
else if(U=="V"){
	U=1;
	for(ra=S[v];
	U<ra;
	U++)S[U]*=m}
else{
	U=1;
	for(ra=S[v];
	U<ra;
	U++)S[U]*=U%2?l:m}
}
}
d=Da(E);
	f=j-d.x-d.width/2;
	d=i-d.y-d.height/2;
	E[0][1]+=f;
	E[0][2]+=d;
	this.attr({
	path:E}
);
	break}
if(this.type in{
	text:1,image:1}
&&(h!=1||n!=1))if(this.transformations){
	this.transformations[2]="scale(".concat(h,",",n,")");
	this.node.setAttribute("transform",this.transformations[Y](V));
	f=h==-1?-g.x-(A||0):g.x;
	d=n==-1?-g.y-(R||0):g.y;
	this.attr({
	x:f,y:d}
);
	g.fx=h-1;
	g.fy=n-1}
else{
	this.node.filterMatrix=" progid:DXImageTransform.Microsoft"+".Matrix(M11=".concat(h,",M12=0,M21=0,M22=",n,",Dx=0,Dy=0,sizingmethod='auto expand',filtertype='bilinear')");
	z.filter=(this.node.filterMatrix||"")+(this.node.filterOpacity||"")}
else if(this.transformations){
	this.transformations[2]="";
	this.node.setAttribute("transform",this.transformations[Y](V));
	g.fx=0;
	g.fy=0}
else{
	this.node.filterMatrix="";
	z.filter=(this.node.filterMatrix||"")+(this.node.filterOpacity||"")}
g.scale=[a,b,c,e][Y](V);
	this._.sx=a;
	this._.sy=b}
return this}
;
	I.clone=function(){
	if(this.removed)return null;
	var a=this.attr();
	delete a.scale;
	delete a.translation;
	return this.paper[this.type]().attr(a)}
;
	var Sa={
}
,Ha=function(a,b,c,e,f,d,g,h,j){
	var i=0,l=100,m=[a,b,c,e,f,d,g,h].join(),n=Sa[m],o,s;
	!n&&(Sa[m]=n={
	data:[]}
);
	n.timer&&clearTimeout(n.timer);
	n.timer=setTimeout(function(){
	delete Sa[m]}
,2E3);
	if(j!=null)l=~~Ha(a,b,c,e,f,d,g,h)*10;
	for(var z=0;
	z<l+1;
	z++){
	if(n.data[j]>z)s=n.data[z*l];
	else{
	s=k.findDotsAtSegment(a,b,c,e,f,d,g,h,z/l);
	n.data[z]=s}
z&&(i+=Q(Q(o.x-s.x,2)+Q(o.y-s.y,2),0.5));
	if(j!=null&&i>=j)return s;
	o=s}
if(j==null)return i}
;
	sa=function(a,b){
	return function(c,e,f){
	c=Ca(c);
	for(var d,g,h,j,i="",l={
}
,m=0,n=0,o=c.length;
	n<o;
	n++){
	h=c[n];
	if(h[0]=="M"){
	d=+h[1];
	g=+h[2]}
else{
	j=Ha(d,g,h[1],h[2],h[3],h[4],h[5],h[6]);
	if(m+j>e){
	if(b&&!l.start){
	d=Ha(d,g,h[1],h[2],h[3],h[4],h[5],h[6],e-m);
	i+=["C",d.start.x,d.start.y,d.m.x,d.m.y,d.x,d.y];
	if(f)return i;
	l.start=i;
	i=["M",d.x,d.y+"C",d.n.x,d.n.y,d.end.x,d.end.y,h[5],h[6]][Y]();
	m+=j;
	d=+h[5];
	g=+h[6];
	continue}
if(!a&&!b){
	d=Ha(d,g,h[1],h[2],h[3],h[4],h[5],h[6],e-m);
	return{
	x:d.x,y:d.y,alpha:d.alpha}
}
}
m+=j;
	d=+h[5];
	g=+h[6]}
i+=h}
l.end=i;
	d=a?m:b?l:k.findDotsAtSegment(d,g,h[1],h[2],h[3],h[4],h[5],h[6],1);
	d.alpha&&(d={
	x:d.x,y:d.y,alpha:d.alpha}
);
	return d}
}
;
	var qb=sa(1),Ia=sa(),Ta=sa(0,1);
	I.getTotalLength=function(){
	if(this.type=="path"){
	if(this.node.getTotalLength)return this.node.getTotalLength();
	return qb(this.attrs.path)}
}
;
	I.getPointAtLength=function(a){
	if(this.type=="path")return Ia(this.attrs.path,a)}
;
	I.getSubpath=function(a,b){
	if(this.type=="path"){
	if(W(this.getTotalLength()-b)<"1e-6")return Ta(this.attrs.path,a).end;
	b=Ta(this.attrs.path,b,1);
	return a?Ta(b,a).end:b}
}
;
	k.easing_formulas={
	linear:function(a){
	return a}
,"<":function(a){
	return Q(a,3)}
,">":function(a){
	return Q(a-1,3)+1}
,"<>":function(a){
	a*=2;
	if(a<1)return Q(a,3)/2;
	a-=2;
	return(Q(a,3)+2)/2}
,backIn:function(a){
	return a*a*(2.70158*a-1.70158)}
,backOut:function(a){
	a-=1;
	return a*a*(2.70158*a+1.70158)+1}
,elastic:function(a){
	if(a==0||a==1)return a;
	return Q(2,-10*a)*G.sin((a-0.075)*2*aa/0.3)+1}
,bounce:function(a){
	if(a<1/2.75)a=7.5625*a*a;
	else if(a<2/2.75){
	a-=1.5/2.75;
	a=7.5625*a*a+0.75}
else if(a<2.5/2.75){
	a-=2.25/2.75;
	a=7.5625*a*a+0.9375}
else{
	a-=2.625/2.75;
	a=7.5625*a*a+0.984375}
return a}
}
;
	var ia=[],rb=function(){
	for(var a=+new Date,b=0;
	b<ia[v];
	b++){
	var c=ia[b];
	if(!(c.stop||c.el.removed)){
	var e=a-c.start,f=c.ms,d=c.easing,g=c.from,h=c.diff,j=c.to,i=c.t,l=c.el;
	c={
}
;
	var m;
	if(e<f){
	e=d(e/f);
	for(var n in g)if(g[u](n)){
	switch(La[n]){
	case "along":m=e*f*h[n];
	j.back&&(m=j.len-m);
	d=Ia(j[n],m);
	l.translate(h.sx-h.x||0,h.sy-h.y||0);
	h.x=d.x;
	h.y=d.y;
	l.translate(d.x-h.sx,d.y-h.sy);
	j.rot&&l.rotate(h.r+d.alpha,d.x,d.y);
	break;
	case X:m=+g[n]+e*f*h[n];
	break;
	case "colour":m="rgb("+[Ua(Z(g[n].r+e*f*h[n].r)),Ua(Z(g[n].g+e*f*h[n].g)),Ua(Z(g[n].b+e*f*h[n].b))][Y](",")+")";
	break;
	case "path":m=[];
	d=0;
	for(var o=g[n][v];
	d<o;
	d++){
	m[d]=[g[n][d][0]];
	for(var s=1,z=g[n][d][v];
	s<z;
	s++)m[d][s]=+g[n][d][s]+e*f*h[n][d][s];
	m[d]=m[d][Y](V)}
m=m[Y](V);
	break;
	case "csv":switch(n){
	case "translation":m=e*f*h[n][0]-i.x;
	d=e*f*h[n][1]-i.y;
	i.x+=m;
	i.y+=d;
	m=m+V+d;
	break;
	case "rotation":m=+g[n][0]+e*f*h[n][0];
	g[n][1]&&(m+=","+g[n][1]+","+g[n][2]);
	break;
	case "scale":m=[+g[n][0]+e*f*h[n][0],+g[n][1]+e*f*h[n][1],2 in j[n]?j[n][2]:"",3 in j[n]?j[n][3]:""][Y](V);
	break;
	case "clip-rect":m=[];
	for(d=4;
	d--;
	)m[d]=+g[n][d]+e*f*h[n][d];
	break}
break;
	default:o=[].concat(g[n]);
	m=[];
	for(d=l.paper.customAttributes[n].length;
	d--;
	)m[d]=+o[d]+e*f*h[n][d];
	break}
c[n]=m}
l.attr(c);
	l._run&&l._run.call(l)}
else{
	if(j.along){
	d=Ia(j.along,j.len*!j.back);
	l.translate(h.sx-(h.x||0)+d.x-h.sx,h.sy-(h.y||0)+d.y-h.sy);
	j.rot&&l.rotate(h.r+d.alpha,d.x,d.y)}
(i.x||i.y)&&l.translate(-i.x,-i.y);
	j.scale&&(j.scale+="");
	l.attr(j);
	ia.splice(b--,1)}
}
}
k.svg&&l&&l.paper&&l.paper.safari();
	ia[v]&&setTimeout(rb)}
,Pb=function(a,b,c,e,f){
	var d=c-e;
	b.timeouts.push(setTimeout(function(){
	k.is(f,"function")&&f.call(b);
	b.animate(a,d,a.easing)}
,e))}
,Ua=function(a){
	return ca(ja(a,255),0)}
,Ga=function(a,b){
	if(a==null)return{
	x:this._.tx,y:this._.ty,toString:w}
;
	this._.tx+=+a;
	this._.ty+=+b;
	switch(this.type){
	case "circle":case "ellipse":this.attr({
	cx:+a+this.attrs.cx,cy:+b+this.attrs.cy}
);
	break;
	case "rect":case "image":case "text":this.attr({
	x:+a+this.attrs.x,y:+b+this.attrs.y}
);
	break;
	case "path":var c=Na(this.attrs.path);
	c[0][1]+=+a;
	c[0][2]+=+b;
	this.attr({
	path:c}
);
	break}
return this}
;
	I.animateWith=function(a,b,c,e,f){
	for(var d=0,g=ia.length;
	d<g;
	d++)ia[d].el.id==a.id&&(b.start=ia[d].start);
	return this.animate(b,c,e,f)}
;
	I.animateAlong=K();
	I.animateAlongBack=K(1);
	I.onAnimation=function(a){
	this._run=a||0;
	return this}
;
	I.animate=function(a,b,c,e){
	var f=this;
	f.timeouts=f.timeouts||[];
	if(k.is(c,"function")||!c)e=c||null;
	if(f.removed){
	e&&e.call(f);
	return f}
var d={
}
,g={
}
,h=false,j={
}
;
	for(var i in a)if(a[u](i))if(La[u](i)||f.paper.customAttributes[u](i)){
	h=true;
	d[i]=f.attr(i);
	d[i]==null&&(d[i]=za[i]);
	g[i]=a[i];
	switch(La[i]){
	case "along":var l=qb(a[i]),m=Ia(a[i],l*!!a.back),n=f.getBBox();
	j[i]=l/b;
	j.tx=n.x;
	j.ty=n.y;
	j.sx=m.x;
	j.sy=m.y;
	g.rot=a.rot;
	g.back=a.back;
	g.len=l;
	a.rot&&(j.r=F(f.rotate())||0);
	break;
	case X:j[i]=(g[i]-d[i])/b;
	break;
	case "colour":d[i]=k.getRGB(d[i]);
	l=k.getRGB(g[i]);
	j[i]={
	r:(l.r-d[i].r)/b,g:(l.g-d[i].g)/b,b:(l.b-d[i].b)/b}
;
	break;
	case "path":l=Ca(d[i],g[i]);
	d[i]=l[0];
	n=l[1];
	j[i]=[];
	l=0;
	for(m=d[i][v];
	l<m;
	l++){
	j[i][l]=[0];
	for(var o=1,s=d[i][l][v];
	o<s;
	o++)j[i][l][o]=(n[l][o]-d[i][l][o])/b}
break;
	case "csv":m=D(a[i]).split(C);
	n=D(d[i]).split(C);
	switch(i){
	case "translation":d[i]=[0,0];
	j[i]=[m[0]/b,m[1]/b];
	break;
	case "rotation":d[i]=n[1]==m[1]&&n[2]==m[2]?n:[0,m[1],m[2]];
	j[i]=[(m[0]-d[i][0])/b,0,0];
	break;
	case "scale":a[i]=m;
	d[i]=D(d[i]).split(C);
	j[i]=[(m[0]-d[i][0])/b,(m[1]-d[i][1])/b,0,0];
	break;
	case "clip-rect":d[i]=D(d[i]).split(C);
	j[i]=[];
	for(l=4;
	l--;
	)j[i][l]=(m[l]-d[i][l])/b;
	break}
g[i]=m;
	break;
	default:m=[].concat(a[i]);
	n=[].concat(d[i]);
	j[i]=[];
	for(l=f.paper.customAttributes[i][v];
	l--;
	)j[i][l]=((m[l]||0)-(n[l]||0))/b;
	break}
}
if(h){
	i=k.easing_formulas[c];
	if(!i)if((i=D(c).match(vb))&&i[v]==5){
	var z=i;
	i=function(R){
	return O(R,+z[1],+z[2],+z[3],+z[4],b)}
}
else i=function(R){
	return R}
;
	ia.push({
	start:a.start||+new Date,ms:b,easing:i,from:d,diff:j,to:g,el:f,t:{
	x:0,y:0}
}
);
	k.is(e,"function")&&(f._ac=setTimeout(function(){
	e.call(f)}
,b));
	ia[v]==1&&setTimeout(rb)}
else{
	c=[];
	var E;
	for(var A in a)if(a[u](A)&&wb.test(A)){
	i={
	value:a[A]}
;
	A=="from"&&(A=0);
	A=="to"&&(A=100);
	i.key=la(A,10);
	c.push(i)}
c.sort(Bb);
	c[0].key&&c.unshift({
	key:0,value:f.attrs}
);
	l=0;
	for(m=c[v];
	l<m;
	l++)Pb(c[l].value,f,b/100*c[l].key,b/100*(c[l-1]&&c[l-1].key||0),c[l-1]&&c[l-1].value.callback);
	(E=c[c[v]-1].value.callback)&&f.timeouts.push(setTimeout(function(){
	E.call(f)}
,b))}
return this}
;
	I.stop=function(){
	for(var a=0;
	a<ia.length;
	a++)ia[a].el.id==this.id&&ia.splice(a--,1);
	a=0;
	for(ii=this.timeouts&&this.timeouts.length;
	a<ii;
	a++)clearTimeout(this.timeouts[a]);
	this.timeouts=[];
	clearTimeout(this._ac);
	delete this._ac;
	return this}
;
	I.translate=function(a,b){
	return this.attr({
	translation:a+" "+b}
)}
;
	I[ka]=function(){
	return"Rapha\u00ebl\u2019s object"}
;
	k.ae=ia;
	var ea=function(a){
	this.items=[];
	this[v]=0;
	this.type="set";
	if(a)for(var b=0,c=a[v];
	b<c;
	b++)if(a[b]&&(a[b].constructor==L||a[b].constructor==ea)){
	this[this.items[v]]=this.items[this.items[v]]=a[b];
	this[v]++}
}
;
	ea[p][N]=function(){
	for(var a,b,c=0,e=arguments[v];
	c<e;
	c++)if((a=arguments[c])&&(a.constructor==L||a.constructor==ea)){
	b=this.items[v];
	this[b]=this.items[b]=a;
	this[v]++}
return this}
;
	ea[p].pop=function(){
	delete this[this[v]--];
	return this.items.pop()}
;
	for(var Va in I)I[u](Va)&&(ea[p][Va]=function(a){
	return function(){
	for(var b=0,c=this.items[v];
	b<c;
	b++)this.items[b][a][M](this.items[b],arguments);
	return this}
}
(Va));
	ea[p].attr=function(a,b){
	if(a&&k.is(a,da)&&k.is(a[0],"object")){
	b=0;
	for(var c=a[v];
	b<c;
	b++)this.items[b].attr(a[b])}
else{
	c=0;
	for(var e=this.items[v];
	c<e;
	c++)this.items[c].attr(a,b)}
return this}
;
	ea[p].animate=function(a,b,c,e){
	(k.is(c,"function")||!c)&&(e=c||null);
	var f=this.items[v],d=f,g,h=this,j;
	e&&(j=function(){
	!--f&&e.call(h)}
);
	c=k.is(c,"string")?c:j;
	for(g=this.items[--d].animate(a,b,c,j);
	d--;
	)this.items[d]&&!this.items[d].removed&&this.items[d].animateWith(g,a,b,c,j);
	return this}
;
	ea[p].insertAfter=function(a){
	for(var b=this.items[v];
	b--;
	)this.items[b].insertAfter(a);
	return this}
;
	ea[p].getBBox=function(){
	for(var a=[],b=[],c=[],e=[],f=this.items[v];
	f--;
	){
	var d=this.items[f].getBBox();
	a[N](d.x);
	b[N](d.y);
	c[N](d.x+d.width);
	e[N](d.y+d.height)}
a=ja[M](0,a);
	b=ja[M](0,b);
	return{
	x:a,y:b,width:ca[M](0,c)-a,height:ca[M](0,e)-b}
}
;
	ea[p].clone=function(a){
	a=new ea;
	for(var b=0,c=this.items[v];
	b<c;
	b++)a[N](this.items[b].clone());
	return a}
;
	k.registerFont=function(a){
	if(!a.face)return a;
	this.fonts=this.fonts||{
}
;
	var b={
	w:a.w,face:{
}
,glyphs:{
}
}
,c=a.face["font-family"];
	for(var e in a.face)a.face[u](e)&&(b.face[e]=a.face[e]);
	this.fonts[c]?this.fonts[c][N](b):(this.fonts[c]=[b]);
	if(!a.svg){
	b.face["units-per-em"]=la(a.face["units-per-em"],10);
	for(var f in a.glyphs)if(a.glyphs[u](f)){
	c=a.glyphs[f];
	b.glyphs[f]={
	w:c.w,k:{
}
,d:c.d&&"M"+c.d.replace(/[mlcxtrv]/g,function(g){
	return{
	l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}
[g]||"M"}
)+"z"}
;
	if(c.k)for(var d in c.k)c[u](d)&&(b.glyphs[f].k[d]=c.k[d])}
}
return a}
;
	P.getFont=function(a,b,c,e){
	e=e||"normal";
	c=c||"normal";
	b=+b||{
	normal:400,bold:700,lighter:300,bolder:800}
[b]||400;
	if(k.fonts){
	var f=k.fonts[a];
	if(!f){
	a=new RegExp("(^|\\s)"+a.replace(/[^\w\d\s+!~.:_-]/g,"")+"(\\s|$)","i");
	for(var d in k.fonts)if(k.fonts[u](d))if(a.test(d)){
	f=k.fonts[d];
	break}
}
var g;
	if(f){
	d=0;
	for(a=f[v];
	d<a;
	d++){
	g=f[d];
	if(g.face["font-weight"]==b&&(g.face["font-style"]==c||!g.face["font-style"])&&g.face["font-stretch"]==e)break}
}
return g}
}
;
	P.print=function(a,b,c,e,f,d,g){
	d=d||"middle";
	g=ca(ja(g||0,1),-1);
	var h=this.set(),j=D(c).split(""),i=0;
	k.is(e,c)&&(e=this.getFont(e));
	if(e){
	c=(f||16)/e.face["units-per-em"];
	var l=e.face.bbox.split(C);
	f=+l[0];
	d=+l[1]+(d=="baseline"?l[3]-l[1]+ +e.face.descent:(l[3]-l[1])/2);
	l=0;
	for(var m=j[v];
	l<m;
	l++){
	var n=l&&e.glyphs[j[l-1]]||{
}
,o=e.glyphs[j[l]];
	i+=l?(n.w||e.w)+(n.k&&n.k[j[l]]||0)+e.w*g:0;
	o&&o.d&&h[N](this.path(o.d).attr({
	fill:"#000",stroke:"none",translation:[i,0]}
))}
h.scale(c,c,f,d).translate(a-f,b-d)}
return h}
;
	k.format=function(a,b){
	var c=k.is(b,da)?[0].concat(b):arguments;
	a&&k.is(a,"string")&&c[v]-1&&(a=a.replace(qa,function(e,f){
	return c[++f]==null?"":c[f]}
));
	return a||""}
;
	k.ninja=function(){
	J.was?(H.Raphael=J.is):delete Raphael;
	return k}
;
	k.el=I;
	k.st=ea[p];
	J.was?(H.Raphael=k):(Raphael=k)}
)();
	define("raphael-min",function(){
}
);
	define("raphael",["raphael-min"],function(){
	return Raphael}
);
	define("transformable",["require","exports","module"],function(){
	return Class.extend({
	init:function(k,t,q){
	this.id=k;
	this.s=this.m=t;
	this.r=q;
	this.y=this.x=0;
	this.transform()}
,transform:function(){
	function k(O){
	$("#"+t).css(O+"transform","translateX("+q+"px) translateY("+w+"px) scale("+K+") rotate("+r+"deg)")}
var t=this.id,q=this.x,w=this.y,K=this.s;
	r=this.r;
	k("-moz-");
	k("-webkit-");
	k("-o-")}
,move:function(k,t){
	this.x=k;
	this.y=t;
	this.transform()}
,moveX:function(k){
	this.x=k;
	this.transform()}
,moveY:function(k){
	this.y=k;
	this.transform()}
,scale:function(k){
	this.s=k;
	this.transform()}
}
)}
);
	define("planet",["transformable","constants"],function(k,t){
	return k.extend({
	getName:function(){
	return this.id}
,getDiameter:function(q){
	if(q===undefined)q=1;
	return t.IMG_SIZE*this.m*q}
}
)}
);
	define("solarsystem",["constants","planet"],function(k,t){
	return Class.extend({
	DEFAULT_HEIGHT:300,init:function(){
	this.planets={
	mercury:new t("mercury",0.4,0),venus:new t("venus",0.9,0),earth:new t("earth",1,0),mars:new t("mars",0.53,0),jupiter:new t("jupiter",11.2,0),saturn:new t("saturn",9.4,90),uranus:new t("uranus",4,0),neptune:new t("neptune",3.8,0)}
;
	this.planetPositions={
}
;
	this.planetsOrder=["mercury","venus","earth","mars","jupiter","saturn","uranus","neptune"];
	this.planetsDistance=[46001200,107476259,147098290,206669E3,740573600,1353572956,2748938461,4452940833];
	this.distance=100;
	this.multiplier=1}
,getPlanet:function(q){
	return this.planets[q]}
,getNbPlanets:function(){
	return this.planetsOrder.length}
,getPlanetIndex:function(q){
	for(var w=0;
	w<this.planetsOrder.length;
	w++)if(this.planetsOrder[w]===q)return w;
	return-1}
,getPlanetNameAt:function(q){
	if(q<0||q>this.planetsOrder.length-1)throw Error("This planet index is out of bounds");
	return this.planetsOrder[q]}
,getPlanetAt:function(q){
	return this.planets[this.getPlanetNameAt(q)]}
,forEachPlanet:function(q){
	for(var w=0;
	w<this.planetsOrder.length;
	w++)q(this.getPlanet(this.planetsOrder[w]))}
,forEachPlanetBefore:function(q,w){
	for(var K=0;
	K<this.planetsOrder.length;
	K++){
	var O=this.planetsOrder[K];
	if(O!==q)w(this.getPlanet(O));
	else break}
}
,move:function(q,w){
	var K=this.distance,O=this.multiplier,C=this;
	q+=-(k.IMG_SIZE/2)+this.distance/2;
	this.forEachPlanet(function(fa){
	q+=fa.getDiameter(O)/2;
	C.planetPositions[fa.id]={
	x:q,y:w}
;
	fa.move(q,w);
	q+=K+fa.getDiameter(O)/2}
)}
,scale:function(q){
	this.multiplier=q;
	this.forEachPlanet(function(w){
	w.scale(w.m*q)}
)}
,fit:function(q,w){
	this.distance=q<1100?60:q<1300?70:q<1500?80:100;
	var K=this.planetsOrder.length,O=q-K*this.distance,C=0;
	if(O>q||O<0){
	this.distance=100;
	O=q-K*this.distance}
this.forEachPlanet(function(fa){
	C+=fa.getDiameter()}
);
	this.scale(O/C);
	this.move(0,w/2-k.IMG_SIZE/2)}
,getDistanceTo:function(q){
	var w=0,K=this.distance,O=this.multiplier;
	this.forEachPlanetBefore(q,function(C){
	w+=C.getDiameter(O)+K}
);
	return w}
,getPlanetPosition:function(q){
	q=this.planetPositions[q];
	q.x+=k.IMG_SIZE/2;
	q.y+=k.IMG_SIZE/2;
	return q}
,getPlanetDiameter:function(q){
	return this.getPlanet(q).getDiameter(this.multiplier)}
,getPlanetScale:function(q){
	return this.getPlanet(q).m*this.multiplier}
,getPlanetDistanceToSun:function(q){
	return this.planetsDistance[q]}
}
)}
);
	define("camera",["constants"],function(k){
	return Class.extend({
	init:function(t){
	this.h=this.w=0;
	this.system=t;
	this._focusedPlanet=this.system.getPlanet("mars");
	this._focusPlanetIndex=0;
	this.currentView=k.VIEW.SYSTEM;
	this.resize()}
,update:function(){
	this.resize();
	this.currentView===k.VIEW.PLANET&&this.changeToPlanetView();
	this.currentView===k.VIEW.SYSTEM&&this.changeToSystemView()}
,resize:function(){
	this.w=$(window).width();
	this.h=$(window).height()}
,focusPlanet:function(t){
	var q=this.system.getPlanet(t),w=1;
	this._focusedPlanet=q;
	this._focusedPlanetIndex=this.system.getPlanetIndex(t);
	if(this.w<1100)w=0.6;
	else if(this.w<1300)w=0.8;
	else if(this.w<1500)w=0.9;
	this.system.scale(1/q.m*w);
	this.system.distance=this.w;
	this.system.move(-this.system.getDistanceTo(t)-k.IMG_SIZE*w,this.h/2-k.IMG_SIZE/2);
	this.currentView=k.VIEW.PLANET}
,focusPlanetIndex:function(t){
	this.focusPlanet(this.system.getPlanetAt(t).getName())}
,focusNextPlanet:function(){
	var t=this._focusedPlanetIndex+1,q=this.system.getNbPlanets()-1;
	this.focusPlanetIndex(t>q?q:t)}
,focusPreviousPlanet:function(){
	var t=this._focusedPlanetIndex-1;
	this.focusPlanetIndex(t<0?0:t)}
,getFocusedPlanet:function(){
	return this._focusedPlanet}
,setFocusedPlanet:function(t){
	this._focusedPlanet=this.system.getPlanet(t)}
,changeToSystemView:function(){
	this.currentView=k.VIEW.SYSTEM;
	this.system.fit(this.w,this.h)}
,changeToPlanetView:function(){
	this.currentView=k.VIEW.PLANET;
	this.focusPlanet(this._focusedPlanet.getName())}
,getCurrentView:function(){
	return this.currentView}
}
)}
);
	define("satellites",["raphael"],function(k){
	return Class.extend({
	ANIMATION_INTERVAL:20,DEFAULT_PLANET_RADIUS:20,DEFAULT_PLANET_COLOR:"white",DEFAULT_ORBIT_COLOR:"white",init:function(t,q,w,K){
	this.r=k(t,q,w);
	this.scale=K||1;
	this.animation=null;
	this.x=q/2*this.scale;
	this.y=w/2*this.scale;
	this.orbitStyle={
	stroke:this.DEFAULT_ORBIT_COLOR}
;
	this.planetStyle={
	"stroke-width":0,fill:this.DEFAULT_PLANET_COLOR}
;
	this.setPlanetRadius(this.DEFAULT_PLANET_RADIUS);
	this.satellites={
}
}
,setPlanetRadius:function(t){
	this.planetRadius=t*this.scale}
,forEachSatellite:function(t){
	for(var q in this.satellites)this.satellites.hasOwnProperty(q)&&t(this.satellites[q])}
,drawPlanet:function(){
	this.r.circle(this.x,this.y,this.planetRadius).attr(this.planetStyle)}
,drawOrbits:function(){
	var t=this,q=this.scale;
	this.forEachSatellite(function(w){
	t.r.circle(t.x,t.y,w.o*q).attr(t.orbitStyle)}
)}
,drawSatellites:function(){
	var t=this,q=this.scale;
	this.forEachSatellite(function(w){
	w.e=t.r.circle(t.x+w.o*q,t.y,w.r*q).attr({
	"stroke-width":0,fill:w.c}
).rotate(w.a,t.x,t.y)}
)}
,draw:function(){
	this.drawPlanet();
	this.drawOrbits();
	this.drawSatellites()}
,play:function(){
	var t=this;
	if(!this.animation)this.animation=setInterval(function(){
	t.forEachSatellite(function(q){
	q.e.rotate(q.a,t.x,t.y);
	q.a+=q.s}
)}
,this.ANIMATION_INTERVAL)}
,pause:function(){
	if(this.animation){
	clearInterval(this.animation);
	this.animation=null}
}
}
)}
);
	define("counter",["jquery"],function(k){
	return Class.extend({
	UPDATE_FREQ:40,init:function(t,q,w,K){
	this.start=q;
	this.end=w;
	this.zeroes=K||0;
	if(t){
	this.el=document.createElement("div");
	t.appendChild(this.el);
	k(this.el).css("opacity",q<w?q/w:1)}
}
,onStep:function(t){
	this.stepCallback=t}
,onStop:function(t){
	this.stopCallback=t}
,zeroFill:function(t,q){
	q-=t.toString().length;
	if(q>0)return(new Array(q+(/\./.test(t)?2:1))).join("0")+t;
	return t}
,run:function(){
	var t=this,q=this.start,w=this.end;
	setTimeout(function(){
	k(t.el).css("opacity",q<w?1:w/q)}
,50);
	var K=setInterval(function(){
	var C=Math.round(k(t.el).css("opacity")*(q<w?w:q));
	C=t.zeroes>0?t.zeroFill(C,t.zeroes):C;
	t.stepCallback&&t.stepCallback(C);
	t.finished&&clearInterval(K)}
,this.UPDATE_FREQ),O=function(){
	t.finished=true;
	t.stopCallback&&t.stopCallback()}
;
	this.el.addEventListener("transitionend",O,true);
	this.el.addEventListener("webkitTransitionEnd",O,true);
	this.el.addEventListener("oTransitionEnd",O,true)}
,stop:function(){
	this.finished=true}
}
)}
);
	define("planetarium",["raphael","constants","solarsystem","camera","satellites","counter"],function(k,t,q,w,K,O){
	k=Class.extend({
	init:function(){
	this.moving=this.started=false;
	this.currentKm=0;
	var p=this;
	$("li.planet").bind(t.TRANSITION_END,function(){
	p.moving=false}
)}
,run:function(){
	this.started=true;
	this.disableTransitions();
	this.system=new q;
	this.camera=new w(this.system);
	this.earthGraph=new fa("earth-moon",130,130,1.06);
	this.jupiterGraph=new C("galilean-moons",500,330,0.7);
	this.distanceCounter=null;
	this.earthGraph.draw();
	this.jupiterGraph.draw();
	this.showSystemView();
	this.removeHiddenContentForAllPlanets();
	this.enableTransitions();
	this.userHasZoomedOnce=this.moving=false}
,refresh:function(){
	this.started&&this.camera.update()}
,toggleBodyClass:function(){
	var p=this.camera.getCurrentView(),u=this.camera.getFocusedPlanet().getName();
	p===t.VIEW.SYSTEM?$("body").removeClass(u).addClass("system"):$("body").addClass(u).removeClass("system")}
,getCurrentView:function(){
	return this.camera.getCurrentView()}
,onCurrentPlanetTransitionOver:function(p){
	var u=this.camera.getFocusedPlanet().getName(),y=$("#"+u+"-info"),H=function(){
	p();
	y.unbind(t.TRANSITION_END,H)}
;
	y.bind(t.TRANSITION_END,H)}
,showSystemView:function(){
	var p=this;
	if(!this.moving){
	this.camera.changeToSystemView();
	this.toggleBodyClass();
	this.hidePlanetInfo();
	this.resetAllOtherPlanets();
	this.onCurrentPlanetTransitionOver(function(){
	p.removeHiddenContentForAllPlanets()}
);
	this.moving=true;
	this.updateGalleryUI()}
}
,showPlanetView:function(){
	var p=this;
	if(!this.moving){
	this.camera.changeToPlanetView();
	this.toggleBodyClass();
	this.hidePlanetsContentOnLeft();
	this.hidePlanetsContentOnRight();
	this.showPlanetInfo();
	this.onCurrentPlanetTransitionOver(function(){
	p.removeHiddenContentForAllPlanets()}
);
	this.moving=true;
	this.updateGalleryUI();
	if(!this.userHasZoomedOnce)this.userHasZoomedOnce=true}
}
,onChangeView:function(p){
	this.changeview_callback=p}
,updateGalleryUI:function(){
	this.userHasZoomedOnce&&this.changeview_callback(this.getCurrentView())}
,isPreviousPlanet:function(){
	return this.system.getPlanetIndex(this.camera.getFocusedPlanet().getName())>0}
,isNextPlanet:function(){
	return this.system.getPlanetIndex(this.camera.getFocusedPlanet().getName())<7}
,getPreviousPlanetName:function(){
	return this.system.getPlanetNameAt(this.system.getPlanetIndex(this.camera.getFocusedPlanet().getName())-1)}
,getNextPlanetName:function(){
	return this.system.getPlanetNameAt(this.system.getPlanetIndex(this.camera.getFocusedPlanet().getName())+1)}
,nextPlanet:function(){
	var p="",u=$("body");
	if(!this.moving&&this.camera.getCurrentView()===t.VIEW.PLANET&&this.isNextPlanet()){
	p=this.camera.getFocusedPlanet().getName();
	$("#"+p+"-info").addClass("left");
	u.removeClass(p);
	this.camera.focusNextPlanet();
	p=this.camera.getFocusedPlanet().getName();
	$("#"+p+"-info").removeClass("right");
	u.addClass(p);
	this.showPlanetInfo();
	this.moving=true}
}
,previousPlanet:function(){
	var p="",u=$("body");
	if(!this.moving&&this.camera.getCurrentView()===t.VIEW.PLANET&&this.isPreviousPlanet()){
	p=this.camera.getFocusedPlanet().getName();
	$("#"+p+"-info").addClass("right");
	u.removeClass(p);
	this.camera.focusPreviousPlanet();
	p=this.camera.getFocusedPlanet().getName();
	$("#"+p+"-info").removeClass("left");
	u.addClass(p);
	this.showPlanetInfo();
	this.moving=true}
}
,zoomOnPlanet:function(p){
	this.camera.setFocusedPlanet(p);
	this.showPlanetView()}
,disableTransitions:function(){
	function p(u){
	$("li.planet").css(u+"transition-duration","0s")}
p("-moz-");
	p("-webkit-");
	p("-o-")}
,enableTransitions:function(){
	setTimeout(function(){
	function p(u){
	$("li.planet").css(u+"transition-duration","0.5s").css("-moz-transition-timing-function","ease")}
p("-moz-");
	p("-webkit-");
	p("-o-")}
,100)}
,createCounter:function(p,u){
	var y=this;
	if(this.distanceCounter){
	this.distanceCounter.stop();
	this.distanceCounter=null}
this.distanceCounter=new O($("#counters").get(0),p,u);
	this.distanceCounter.onStep(function(H){
	$("#kilometers").text(qa(H)+" KM")}
);
	this.distanceCounter.onStop(function(){
	y.distanceCounter=null}
);
	this.distanceCounter.run()}
,showPlanetInfo:function(){
	var p=this.camera.getFocusedPlanet().getName(),u=this.currentKm,y=this.system.getPlanetDistanceToSun(this.system.getPlanetIndex(p)),H=$("#gui");
	H.addClass("visible");
	H.removeClass("shrink");
	this.createCounter(u,y);
	this.currentKm=y;
	this.updateGraphs();
	if(p==="neptune")$("#moveright").hide();
	else if(p==="mercury")$("#moveleft").hide();
	else{
	$("#moveleft").show();
	$("#moveright").show()}
}
,hidePlanetInfo:function(){
	var p=$("#gui"),u=$("#starfield");
	p.addClass("shrink");
	p.removeClass("visible");
	u.removeClass("reset");
	u.removeClass("zoom");
	this.currentKm=0;
	this.updateGraphs()}
,updateGraphs:function(){
	var p=this.camera.getFocusedPlanet().getName(),u=false;
	if(this.camera.getCurrentView()===t.VIEW.PLANET)if(p==="jupiter")this.jupiterGraph.play();
	else if(p==="earth")this.earthGraph.play();
	else u=true;
	else u=true;
	if(u){
	this.earthGraph.pause();
	this.jupiterGraph.pause()}
}
,resetAllOtherPlanets:function(){
	var p=this.camera.getFocusedPlanet().getName();
	this.system.forEachPlanet(function(u){
	var y=$("#"+u.id+"-info");
	y.removeClass("left").removeClass("right");
	u.id!==p&&y.addClass("hidden")}
)}
,removeHiddenContentForAllPlanets:function(){
	this.system.forEachPlanet(function(p){
	$("#"+p.id+"-info").removeClass("hidden")}
)}
,forPlanetsOnLeft:function(p){
	for(var u=this,y=this.system.getPlanetIndex(this.camera.getFocusedPlanet().getName())-1;
	y>=0;
	y-=1)(function(H){
	H=u.system.getPlanetNameAt(H);
	p(H)}
)(y)}
,forPlanetsOnRight:function(p){
	for(var u=this,y=this.system.getPlanetIndex(this.camera.getFocusedPlanet().getName())+1;
	y<8;
	y+=1)(function(H){
	H=u.system.getPlanetNameAt(H);
	p(H)}
)(y)}
,hidePlanetsContentOnLeft:function(){
	this.forPlanetsOnLeft(function(p){
	$("#"+p+"-info").addClass("left").addClass("hidden")}
)}
,hidePlanetsContentOnRight:function(){
	this.forPlanetsOnRight(function(p){
	$("#"+p+"-info").addClass("right").addClass("hidden")}
)}
,hidePlanetsImageOnLeft:function(){
	this.forPlanetsOnLeft(function(p){
	$("#"+p).addClass("hidden")}
)}
,hidePlanetsImageOnRight:function(){
	this.forPlanetsOnRight(function(p){
	$("#"+p).addClass("hidden")}
)}
,changeName:function(p){
	$(".content h1").html(p)}
}
);
	var C=K.extend({
	init:function(p,u,y,H){
	this._super(p,u,y,H);
	this.planetRadius=10;
	this.satellites={
	io:{
	o:40,r:5,a:25,s:0.8,c:"#fff075"}
,europa:{
	o:60,r:5,a:60,s:0.4,c:"#75d0ff"}
,ganymede:{
	o:90,r:5,a:140,s:0.2,c:"#4bfe86"}
,callisto:{
	o:150,r:5,a:250,s:0.1,c:"#ff7575"}
}
}
}
),fa=K.extend({
	init:function(p,u,y,H){
	this._super(p,u,y,H);
	this.satellites={
	moon:{
	o:47,r:4.5,a:-45,s:0.5,c:"white"}
}
}
}
),qa=function(p){
	p+="";
	x=p.split(".");
	x1=x[0];
	x2=x.length>1?"."+x[1]:"";
	for(p=/(\d+)(\d{
	3}
)/;
	p.test(x1);
	)x1=x1.replace(p,"$1,$2");
	return x1+x2}
;
	return k}
);
	define("init",["jquery","constants","planetarium"],function(k,t,q){
	k(document).ready(function(){
	var w=null,K=false,O={
	start_demo:function(){
	var y=setInterval(function(){
	if(K){
	u();
	clearInterval(y)}
else log.debug("Loading assets...")}
,100)}
,stop_demo:function(){
	C("finished_exit")}
}
,C=function(y){
	window.parent.postMessage(y,"*");
	log.debug("Sent:"+y)}
,fa=function(y){
	for(var H=["mercury.jpg","venus.jpg","earth.jpg","mars.jpg","jupiter.jpg","saturn.png","uranus.png","neptune.jpg"],J=0,na=0,P=H.length;
	na<P;
	na+=1){
	var M=H[na],oa=M.split(".")[0],V=M.split(".")[1];
	oa=k("#"+oa);
	var D=k('<div class="clipmask"></div>');
	M=k('<img src="img/'+M+'" alt="">');
	if(V==="png")oa.append(M);
	else{
	D.append(M);
	oa.append(D)}
M.bind("load",function(){
	J+=1;
	J===P&&setTimeout(function(){
	y()}
,1E3)}
)}
}
,qa=function(y){
	w=new q;
	w.onChangeView(function(J){
	J===t.VIEW.SYSTEM?C("show_exit_ui"):C("hide_exit_ui")}
);
	w.run();
	k("#previous").click(function(){
	w.previousPlanet()}
);
	k("#next").click(function(){
	w.nextPlanet()}
);
	k("#back").click(function(){
	w.getCurrentView()===t.VIEW.PLANET&&w.showSystemView()}
);
	k("li.planet").click(function(){
	w.getCurrentView()===t.VIEW.SYSTEM&&w.zoomOnPlanet(this.id)}
);
	k("#moveleft").mousemove(function(J){
	J=J.pageY;
	k("#previous").css("top",J+"px")}
);
	k("#moveleft").mouseleave(function(){
	k("#previous").css("top","50%")}
);
	k("#moveright").mousemove(function(J){
	J=J.pageY;
	k("#next").css("top",J+"px")}
);
	k("#moveright").mouseleave(function(){
	k("#next").css("top","50%")}
);
	var H=function(){
	var J=k("#toggle-credits span");
	k("body").hasClass("showcredits")?J.html("back to demo"):J.html("view credits")}
;
	k("#toggle-credits").click(function(){
	var J=k("body");
	if(J.hasClass("showcredits")){
	k("ul#planets").addClass("delayed");
	k("#instructions").addClass("delayed");
	k("#credits").removeClass("alwaysontop");
	J.removeClass("showcredits");
	setTimeout(function(){
	k("ul#planets").removeClass("delayed");
	k("#instructions").removeClass("delayed")}
,1E3)}
else{
	J.addClass("showcredits");
	setTimeout(function(){
	k("#credits").addClass("alwaysontop")}
,1E3)}
H()}
);
	k("#title").click(function(){
	var J=k("body");
	if(J.hasClass("showcredits")){
	k("ul#planets").addClass("delayed");
	k("#instructions").addClass("delayed");
	k("#credits").removeClass("alwaysontop");
	J.removeClass("showcredits");
	setTimeout(function(){
	k("#instructions").removeClass("delayed");
	k("ul#planets").removeClass("delayed")}
,1E3)}
H()}
);
	k(window).resize(function(){
	w.refresh()}
);
	k(document).unbind("keydown").bind("keydown",function(J){
	J=J.which;
	if([32,37,38,39,40].indexOf(J)!==-1){
	switch(J){
	case 32:break;
	case 37:w.previousPlanet();
	break;
	case 39:w.nextPlanet();
	break;
	case 38:w.getCurrentView()===t.VIEW.SYSTEM&&w.showPlanetView();
	break;
	case 40:w.getCurrentView()===t.VIEW.PLANET&&w.showSystemView();
	break}
return false}
}
);
	y()}
,p=function(){
	qa(function(){
	K=true}
)}
,u=function(){
	k("#spinner").remove();
	k("#planets").removeClass("loading");
	setTimeout(function(){
	k("#instructions").removeClass("loading");
	setTimeout(function(){
	k("#toggle-credits").removeClass("loading")}
,800)}
,1E3)}
;
	(function(){
	window.addEventListener("message",function(y){
	y=y.data;
	if(y in O){
	log.debug("Received:"+y);
	O[y]()}
}
,false);
	k(document).bind("keydown",function(){
	return false}
);
	C("loaded");
	fa(p);
	window===window.top&&window.postMessage("start_demo","*")}
)()}
);
	k(window).mousedown(function(w){
	w.which===2&&w.preventDefault()}
)}
);
	(function(){
	var k=false,t=/xyz/.test(function(){
}
)?/\b_super\b/:/.*/
;
	this.Class=function(){
}
;
	Class.extend=function(q){
	function w(){
	!k&&this.init&&this.init.apply(this,arguments)}
var K=this.prototype;
	k=true;
	var O=new this;
	k=false;
	for(var C in q)O[C]=typeof q[C]=="function"&&typeof K[C]=="function"&&t.test(q[C])?function(fa,qa){
	return function(){
	var p=this._super;
	this._super=K[fa];
	var u=qa.apply(this,arguments);
	this._super=p;
	return u}
}
(C,q[C]):q[C];
	w.prototype=O;
	w.constructor=w;
	w.extend=arguments.callee;
	return w}
}
)();
	define("class",function(){
}
);
	var log={
	level:"info",info:function(k){
	if(this.level==="info"||this.level==="debug")window.console&&console.info(k)}
,debug:function(k){
	this.level==="debug"&&window.console&&console.log(k)}
,error:function(k){
	window.console&&console.error(k)}
}
;
	define("log",function(){
}
);
	define("main",["class","log"],function(){
	log.level="info";
	require(["init"])}
);
	

CSS代码(style.css):

/* Fonts */
@font-face{font-family:'Franchise';src:url('../fonts/Franchise-Bold.ttf') format('truetype');font-weight:normal;font-style:normal;}
@font-face{font-family:'Bebas';src:url('../fonts/BEBAS___-webfont.ttf') format('truetype');font-weight:normal;font-style:normal;}
@font-face{font-family:'CartoGothicStd-Book';src:url('../fonts/CartoGothicStd-Book-webfont.ttf') format('truetype'),url('../fonts/CartoGothicStd-Book-webfont.woff') format('woff');font-weight:normal;font-style:normal;}
@font-face{font-family:'MarketingScript';src:url('../fonts/MarketingScript.ttf') format('truetype');font-weight:normal;font-style:normal;}
/* Generic transition properties */
ul#planets{-moz-transition:0.5s all linear;-webkit-transition:0.5s all linear;-o-transition:0.5s all linear;transition:0.5s all linear;}
.content,.content h1,#dock,.window{-moz-transition:0.5s all ease-out;-webkit-transition:0.5s all ease-out;-o-transition:0.5s all ease-out;transition:0.5s all ease-out;}
.reflect{-moz-transition:0.5s all ease-in;-moz-transition-delay:0.2s;-webkit-transition:0.5s all ease-in;-webkit-transition-delay:0.2s;-o-transition:0.5s all ease-in;-o-transition-delay:0.2s;transition:0.5s all ease-in;transition-delay:0.2s;}
.content li{-moz-transition:0.5s all ease-in-out;-webkit-transition:0.5s all ease-in-out;-o-transition:0.5s all ease-in-out;transition:0.5s all ease-in-out;}
.content li:nth-child(1){-moz-transition-delay:0.1s;-webkit-transition-delay:0.1s;-o-transition-delay:0.1s;transition-delay:0.1s;}
.content li:nth-child(2){-moz-transition-delay:0.2s;-webkit-transition-delay:0.2s;-o-transition-delay:0.2s;transition-delay:0.2s;}
.content li:nth-child(3){-moz-transition-delay:0.3s;-webkit-transition-delay:0.3s;-o-transition-delay:0.3s;transition-delay:0.3s;}
.content li:nth-child(4){-moz-transition-delay:0.4s;-webkit-transition-delay:0.4s;-o-transition-delay:0.4s;transition-delay:0.4s;}
#previous,#next,#next img,#previous img,#dock li,.planet svg,#moveleft,#moveright,#counter,#starfield{-moz-transition:0.2s all ease-in-out;-webkit-transition:0.2s all ease-in-out;-o-transition:0.2s all ease-in-out;transition:0.2s all ease-in-out;}
#back{-moz-transition:1s box-shadow linear,1s color linear,0.2s background-color linear,0.2s top ease;-webkit-transition:1s -webkit-box-shadow linear,1s color linear,0.2s background-color linear,0.2s top ease;-o-transition:1s box-shadow linear,1s color linear,0.2s background-color linear,0.2s top ease;transition:1s box-shadow linear,1s color linear,0.2s background-color linear,0.2s top ease;}
#title{-moz-transition:0.5s opacity ease;-webkit-transition:0.5s opacity ease;-o-transition:0.5s opacity ease;transition:0.5s opacity ease;}
#glow{-moz-transition:0.5s all ease;-webkit-transition:0.5s all ease;-o-transition:0.5s all ease;transition:0.5s all ease;}
#instructions{-moz-transition:1s color linear,0.5s opacity linear;-webkit-transition:1s color linear,0.5s opacity linear;-o-transition:1s color linear,0.5s opacity linear;transition:1s color linear,0.5s opacity linear;}
#ruler{-moz-transition:0.2s bottom ease,1.5s left ease-out;-webkit-transition:0.2s bottom ease,1.5s left ease-out;-o-transition:0.2s bottom ease,1.5s left ease-out;transition:0.2s bottom ease,1.5s left ease-out;text-align:center;}
#moveleft.hover #previous,#moveleft.hover #previous img,#moveright.hover #next,#moveright.hover #next img{-moz-transition:0s;-webkit-transition:0s;-o-transition:0s;transition:0s;}
/* Fonts and color */
.franchise{font:100px 'Franchise',Arial,sans-serif;}
.bebas{font:25px 'Bebas',Arial,sans-serif;word-spacing:5px;}
.carto{font:18px 'CartoGothicStd-Book',Arial,sans-serif;}
.marketing{font:51px 'MarketingScript',serif;}
.mass{color:#75d0ff;}
.perimeter{color:#fff075;}
.revolution{color:#ff7575;}
.temperature{color:#4bfe86;}
h1{color:#eee;-moz-transform-origin:center center;-webkit-transform-origin:center center;-o-transform-origin:center center;transform-origin:center center;font-size:10em;}
h1.bebas{font-size:72px;font-weight:normal;color:#ddd;}
h2.bebas{font-size:14px;color:#eee;margin-left:30px;margin-top:20px;font-weight:normal;color:#ccc;}
a{text-decoration:none;color:#75d0ff;}
a:hover{color:#aae2ff;}
/* GUI layout */
#moveleft,#moveright{position:absolute;height:100%;width:15%;top:0;}
#moveleft{left:-15%;}
#moveright{right:-15%;}
#moveright:hover #next,#moveleft:hover #previous{-moz-transition:0s;-webkit-transition:0s;-o-transition:0s;transition:0s;}
#previous,#next{height:90px;width:190px;position:absolute;top:50%;margin-top:-45px;background:rgba(255,255,255,0.1);border-radius:10px;}
#previous{left:-100px;text-align:right;}
#next{right:-100px;}
#previous img,#next img{margin:20px 25px;opacity:0.6;}
#next img{margin:20px 25px;opacity:0.6;-moz-transform:rotate(180deg);-webkit-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);}
#previous:hover,#next:hover{cursor:pointer;background:rgba(255,255,255,0.2);}
#previous:hover img,#next:hover img{opacity:1;}
#ruler{position:absolute;width:10000px;left:-4500px;height:50px;background:rgba(255,255,255,0.1) url('../img/ruler.png') repeat-x center top;bottom:-100px;border-radius:0px;}
#gui.visible #ruler{bottom:0px;}
.mercury #ruler{left:-1000px;}
.venus #ruler{left:-2000px;}
.earth #ruler{left:-3000px;}
.mars #ruler{left:-4000px;}
.jupiter #ruler{left:-5000px;}
.saturn #ruler{left:-6000px;}
.uranus #ruler{left:-7000px;}
.neptune #ruler{left:-8000px;}
#counter{position:absolute;left:0%;width:100%;bottom:-100px;text-align:center;color:#ccc;}
#counter span.carto{font-size:11px;}
#counter span.bebas{font-size:18px;}
#gui.visible #counter{bottom:5px;}
#gui.visible #dock{-moz-transform:translateY(-200px);-webkit-transform:translateY(-200px);-o-transform:translateY(-200px);transform:translateY(-200px);}
#gui.visible #previous{-moz-transform:translateX(0px);-webkit-transform:translateX(0px);-o-transform:translateX(0px);transform:translateX(0px);}
#gui.visible #next{-moz-transform:translateX(0px);-webkit-transform:translateX(0px);-o-transform:translateX(0px);transform:translateX(0px);}
#gui.visible #moveleft{left:0;}
#gui.visible #moveright{right:0;}
#back{position:absolute;height:150px;width:300px;border-radius:10px;top:-150px;background:rgba(255,255,255,0.1);left:50%;margin-left:-150px;text-align:center;color:#ccc;}
#back span{text-transform:uppercase;position:relative;top:100px;font-size:14px;}
#back:hover{cursor:pointer;background-color:rgba(255,255,255,0.2);}
.visible #back{top:-75px;}
#back.glowing{color:#eee;box-shadow:0px 0px 5px #999;-webkit-box-shadow:0px 0px 5px #999;}
#back:hover,#back.glowing:hover{color:#eee;}
.visible .content{pointer-events:none;}
.shrink .content{opacity:0;z-index:1;}
.shrink .content .reflect{background-position:-700px 0px;}
.shrink .content .window{-moz-transform:scale(0);-webkit-transform:scale(0);-o-transform:scale(0);transform:scale(0);}
.shrink .content ul li{-moz-transform:translateY(-100px) scale(0);-webkit-transform:translateY(-100px) scale(0);-o-transform:translateY(-100px) scale(0);transform:translateY(-100px) scale(0);}
.content.left{-moz-transform:translateX(-4000px);-webkit-transform:translateX(-4000px);-o-transform:translateX(-4000px);transform:translateX(-4000px);}
.content.right{-moz-transform:translateX(3500px);-webkit-transform:translateX(3500px);-o-transform:translateX(3500px);transform:translateX(3500px);}
/* Planet content generic layout */
.content{opacity:1;display:inline;position:absolute;left:50%;height:500px;top:50%;margin-top:-250px;pointer-events:none;}
.content article{padding-top:0;}
.content .reflect{background:url('../img/reflect.png') no-repeat 500px 0px;padding:5px 30px;border-radius:10px;}
.content .window{background:rgba(255,255,255,0.1);width:550px;margin:0;border-radius:10px;border:1px solid rgba(255,255,255,0.2);-moz-transform:scale(1);-webkit-transform:scale(1);-o-transform:scale(1);transform:scale(1);}
.content .window h1{float:left;padding:0 15px 0 0;margin:0;position:relative;top:5px;left:-2px;height:100px;}
.content .window p{font-size:18px;line-height:30px;padding-top:0px;color:#ccc;font-size:18px;font-family:'CartoGothicStd-Book',sans-serif;}
.content ul{list-style-type:none;position:relative;top:-5px;margin-left:-18px;}
.content ul li{position:relative;float:none;margin:10px 0;opacity:1;}
.content ul li img{margin-right:15px;position:relative;top:15px;}
.content ul li span{display:block;font-size:12px;padding-left:60px;word-spacing:3px;}
.content ul li span.exposant{display:inline;font-size:11px;padding-left:3px;position:relative;top:-15px;}
/*Mercury Content */
#mercury-missions{width:600px}
#mercury-missions ul{text-align:center;margin:0 auto;width:470px;}
#mercury-missions ul li{float:left;padding-left:100px;margin-bottom:30px;}
#mercury-missions ul li:first-child{padding-left:0px;}
#mercury-missions ul li:nth-child(1){-moz-transition-delay:0.5s;-webkit-transition-delay:0.5s;-o-transition-delay:0.5s;transition-delay:0.5s;}
#mercury-missions ul li:nth-child(2){-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-o-transition-delay:0.8s;transition-delay:0.8s;}
#mercury-missions ul li:nth-child(3){-moz-transition-delay:1.1s;-webkit-transition-delay:1.1s;-o-transition-delay:1.1s;transition-delay:1.1s;}
#mariner10{margin-left:30px;opacity:1;}
#techarrow{position:relative;top:-40px;left:-40px;-moz-transition:0.5s all ease 1.5s;-moz-transform:scaleX(1);-moz-transform-origin:0 center;-webkit-transition:0.5s all ease 1.5s;-webkit-transform:scaleX(1);-webkit-transform-origin:0 center;-o-transition:0.5s all ease 1.5s;-o-transform:scaleX(1);-o-transform-origin:0 center;transition:0.5s all ease 1.5s;transform:scaleX(1);transform-origin:0 center;}
#messenger{float:right;margin-left:-40px;position:relative;left:-35px;opacity:1;-moz-transition:0.5s all ease 1.7s;-moz-transform:translateX(0px);-moz-transform-origin:0 center;-webkit-transition:0.5s all ease 1.7s;-webkit-transform:translateX(0px);-webkit-transform-origin:0 center;-o-transition:0.5s all ease 1.7s;-o-transform:translateX(0px);-o-transform-origin:0 center;-o-transition-delay:1s;transition:0.5s all ease 1.7s;transform:translateX(0px);transform-origin:0 center;}
.shrink #mercury-missions ul li,.left #mercury-missions ul li,.right #mercury-missions ul li{-moz-transform:translateX(0) translateY(0) scale(0);-webkit-transform:translateX(0) translateY(0) scale(0);-o-transform:translateX(0) translateY(0) scale(0);transform:translateX(0) translateY(0) scale(0);}
.shrink #techarrow,.left #techarrow,.right #techarrow{opacity:0;-moz-transform:scaleX(0);-webkit-transform:scaleX(0);-o-transform:scaleX(0);transform:scaleX(0);}
.shrink #messenger,.left #messenger,.right #messenger{opacity:0;-moz-transform:translateX(-300px);-webkit-transform:translateX(-300px);-o-transform:translateX(-300px);transform:translateX(-300px);}
.shrink #mariner10{opacity:0;}
/* Venus Content */
ul#venus-atmosphere{margin-top:50px;}
ul#venus-atmosphere li{width:100%;font-size:14px;padding:0;margin:0;border-top:1px solid #999;}
ul#venus-atmosphere li span:nth-child(1){text-align:center;width:100%;position:absolute;font-size:24px;margin-left:-70px;margin-top:-20px;}
ul#venus-atmosphere li span:nth-child(2){float:right;font-size:inherit;}
ul#venus-atmosphere li:nth-child(1){color:#75d0ff;height:225px;}
ul#venus-atmosphere li:nth-child(2){color:#fff075;height:165px;margin-top:-165px;}
ul#venus-atmosphere li:nth-child(3){color:#4bfe86;height:115px;margin-top:-115px;background:url('../img/venussurface.png') no-repeat center bottom;}
ul#venus-atmosphere li:nth-child(4){color:#ff7575;}
.shrink .content ul#venus-atmosphere li{-moz-transform:translateY(500px) scaleX(0) scaleY(0);-webkit-transform:translateY(500px) scaleX(0) scaleY(0);-o-transform:translateY(500px) scaleX(0) scaleY(0);transform:translateY(500px) scaleX(0) scaleY(0);}
.right ul#venus-atmosphere li{-moz-transform:translateX(1000px);-webkit-transform:translateX(1000px);-o-transform:translateX(1000px);transform:translateX(1000px);}
.left ul#venus-atmosphere li{-moz-transform:translateX(-500px);-webkit-transform:translateX(-500px);-o-transform:translateX(-500px);transform:translateX(-500px);}
/*Earth Content */
.grid{background:url('../img/grid.png') repeat;}
.moon{float:right;height:135px;width:225px;text-align:center;border:1px solid rgba(255,255,255,0);margin-top:30px;background-position:8px 8px;}
.moon img{margin-top:20px;margin-left:20px;opacity:0;-moz-transform:scale(0);-moz-transition:0.5s all ease;-moz-transition-delay:0.5s;-webkit-transform:scale(0);-webkit-transition:0.5s all ease;-webkit-transition-delay:0.5s;-o-transform:scale(0);-o-transition:0.5s all ease;-o-transition-delay:0.5s;transform:scale(0);transition:0.5s all ease;transition-delay:0.5s;}
.moon img#distance{margin-top:40px;margin-left:0px;-moz-transform:scaleX(0);-moz-transition-delay:0.8s;-webkit-transform:scaleX(0);-webkit-transition-delay:0.8s;-o-transform:scaleX(0);-o-transition-delay:0.8s;transform:scaleX(0);transition-delay:0.8s;}
.visible .moon img{opacity:1;-moz-transform:scale(1);-webkit-transform:scale(1);-o-transform:scale(1);transform:scale(1);}
.visible .moon img#distance{-moz-transform:scaleX(1);-webkit-transform:scaleX(1);-o-transform:scaleX(1);transform:scaleX(1);}
.right ul#earth-facts li{-moz-transform:translateX(1000px);-webkit-transform:translateX(1000px);-o-transform:translateX(1000px);transform:translateX(1000px);}
.left ul#earth-facts li{-moz-transform:translateX(-500px);-webkit-transform:translateX(-500px);-o-transform:translateX(1000px);transform:translateX(1000px);}
/* Mars Content */
ul#volcanoes{margin-top:50px;}
ul#volcanoes li{width:100%;font-size:18px;padding:0;margin:0;}
ul#volcanoes li span{float:right;font-size:inherit;}
ul#volcanoes li:nth-child(1){color:#ff7575;height:200px;background:url('../img/olympus.png') no-repeat center bottom;}
ul#volcanoes li:nth-child(2){color:#75d0ff;height:110px;margin-top:-110px;background:url('../img/everest.png') no-repeat 100px bottom;}
ul#volcanoes li:nth-child(3){color:#4bfe86;height:60px;margin-top:-60px;background:url('../img/fuji.png') no-repeat 400px bottom;}
ul#volcanoes li hr{margin:0;border:0;height:1px;background:#999;margin-top:4px;}
.shrink .content ul#volcanoes li{-moz-transform:translateY(500px) scaleX(0) scaleY(0);-webkit-transform:translateY(500px) scaleX(0) scaleY(0);-o-transform:translateY(500px) scaleX(0) scaleY(0);transform:translateY(500px) scaleX(0) scaleY(0);}
.right ul#volcanoes li{-moz-transform:translateX(1000px);-webkit-transform:translateX(1000px);-o-transform:translateX(1000px);transform:translateX(1000px);}
.left ul#volcanoes li{-moz-transform:translateX(-500px);-webkit-transform:translateX(-500px);-o-transform:translateX(-500px);transform:translateX(-500px);}
/* Jupiter Content */
#jupiter-info ul{float:right;margin-top:15px;}
#jupiter-info ul li:nth-child(1){color:#fff075;}
#jupiter-info ul li:nth-child(2){color:#75d0ff;}
#jupiter-info ul li:nth-child(3){color:#4bfe86;}
#jupiter-info ul li:nth-child(4){color:#ff7575;}
#galilean-moons{height:235px;width:346px;margin-top:35px;border:1px solid rgba(255,255,255,0.2);background-position:8px 5px;color:#ddd;}
#galilean-moons h2{font-size:18px;margin:0;padding:0;font-weight:normal;}
#galilean-moons span{font-size:12px;display:block;}
.right ul#jupiter-moons li{-moz-transform:translateX(1000px);-webkit-transform:translateX(1000px);-o-transform:translateX(1000px);transform:translateX(1000px);}
.left ul#jupiter-moons li{-moz-transform:translateX(-500px);-webkit-transform:translateX(-500px);-o-transform:translateX(-500px);transform:translateX(-500px);}
/* Saturn Content */
#rings-origin{height:210px;width:100%;margin-top:35px;color:#ccc;}
#rings-origin h2{font-size:14px;float:right;margin:-15px 0 0 0;padding:0;}
#rings-origin p{float:right;text-align:right;font-size:13px;clear:both;line-height:21px;margin-top:5px;}
#rings-origin ul{margin:5px 0px 0px -35px;}
#rings-origin ul li{height:72px;margin:0;padding:0;}
#rings-origin ul li span:nth-child(1){display:block;height:40px;width:40px;border-radius:20px;text-align:center;line-height:38px;color:#000;font-size:22px;padding:0;}
#rings-origin ul li:nth-child(1) span:nth-child(1){background:#75d0ff}
#rings-origin ul li:nth-child(2) span:nth-child(1){background:#fff075}
#rings-origin ul li:nth-child(3) span:nth-child(1){background:#4bfe86}
#rings-origin ul li img.saturnarrow{position:absolute;top:-10px;left:30px;opacity:1;-moz-transition:0.5s all ease;-moz-transform-origin:0 center;-webkit-transition:0.5s all ease;-webkit-transform-origin:0 center;-o-transition:0.5s all ease;-o-transform-origin:0 center;transition:0.5s all ease;transform-origin:0 center;}
#rings-origin ul li img.rings{position:absolute;top:-12px;opacity:1;-moz-transition:0.5s all ease;-webkit-transition:0.5s all ease;-o-transition:0.5s all ease;transition:0.5s all ease;}
#rings-origin ul li:nth-child(1) img.rings{left:130px;-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-o-transition-delay:0.8s;transition-delay:0.8s;}
#rings-origin ul li:nth-child(2) img.rings{left:230px;-moz-transition-delay:1.2s;-webkit-transition-delay:1.2s;-o-transition-delay:1.2s;transition-delay:1.2s;}
#rings-origin ul li:nth-child(3) img.rings{left:330px;-moz-transition-delay:1.6s;-webkit-transition-delay:1.6s;-o-transition-delay:1.6s;transition-delay:1.6s;}
#rings-origin ul li:nth-child(1) img.saturnarrow{-moz-transition-delay:0.8s;-webkit-transition-delay:0.8s;-o-transition-delay:0.8s;transition-delay:0.8s;}
#rings-origin ul li:nth-child(2) img.saturnarrow{-moz-transition-delay:1.2s;-webkit-transition-delay:1.2s;-o-transition-delay:1.2s;transition-delay:1.2s;}
#rings-origin ul li:nth-child(3) img.saturnarrow{-moz-transition-delay:1.6s;-webkit-transition-delay:1.6s;-o-transition-delay:1.6s;transition-delay:1.6s;}
.shrink .content #rings-origin img.saturnarrow{-moz-transform:scaleX(0);-webkit-transform:scaleX(0);-o-transform:scaleX(0);transform:scaleX(0);}
.left #rings-origin img.saturnarrow{-moz-transform:scaleX(0);-webkit-transform:scaleX(0);-o-transform:scaleX(0);transform:scaleX(0);}
.right #rings-origin img.saturnarrow{-moz-transform:scaleX(0);-webkit-transform:scaleX(0);-o-transform:scaleX(0);transform:scaleX(0);}
.shrink .content #rings-origin img.rings{opacity:0;left:0;}
.left #rings-origin img.rings,.right #rings-origin img.rings{opacity:0;-moz-transform:translateX(-200px);-webkit-transform:translateX(-200px);-o-transform:translateX(-200px);transform:translateX(-200px);}
.right #rings-origin ul li{-moz-transform:translateX(500px);-webkit-transform:translateX(500px);-o-transform:translateX(500px);transform:translateX(500px);}
.left #rings-origin ul li{-moz-transform:translateX(-1000px);-webkit-transform:translateX(-1000px);-o-transform:translateX(-1000px);transform:translateX(-1000px);}
/* Uranus Content */
#uranus-atmosphere{height:250px;position:relative;width:50%;}
#uranus-atmosphere div div:nth-child(1){width:45px;opacity:0.5;display:inline-block;-moz-transform:skewY(30deg) translateY(0px);-webkit-transform:skewY(30deg) translateY(0px);-o-transform:skewY(30deg) translateY(0px);transform:skewY(30deg) translateY(0px);}
#uranus-atmosphere div div:nth-child(2){width:45px;opacity:0.8;display:inline-block;position:relative;left:-4px;-moz-transform:skewY(-30deg);-webkit-transform:skewY(-30deg);-o-transform:skewY(-30deg);transform:skewY(-30deg);}
#uranus-atmosphere div div:nth-child(3){width:65px;height:65px;opacity:0.65;position:relative;left:12.5px;-moz-transform:scaleY(0.58) rotate(45deg);-webkit-transform:scaleY(0.58) rotate(45deg);-o-transform:scaleY(0.58) rotate(45deg);transform:scaleY(0.58) rotate(45deg);}
#uranus-atmosphere div span{position:absolute;left:120px;font-size:12px;}
#hydrogen,#helium,#methane,#deuteride{position:absolute;left:50px;}
#deuteride{top:55px;color:#fff075;-moz-transition:0.5s all ease-out;-moz-transition-delay:0.5s;-webkit-transition:0.5s all ease-out;-webkit-transition-delay:0.5s;-o-transition:0.5s all ease-out;-o-transition-delay:0.5s;transition:0.5s all ease-out;transition-delay:0.5s;}
#deuteride div{background:#fff075;}
#deuteride div:nth-child(1){height:2px;}
#deuteride div:nth-child(2){height:2px;}
#deuteride div:nth-child(3){top:-52px;}
#deuteride span{top:-15px;width:300px;}
#methane{top:62px;color:#ff7575;-moz-transition:0.5s all ease-out;-moz-transition-delay:0.4s;-webkit-transition:0.5s all ease-out;-webkit-transition-delay:0.4s;-o-transition:0.5s all ease-out;-o-transition-delay:0.4s;transition:0.5s all ease-out;transition-delay:0.4s;}
#methane div{background:#ff7575;}
#methane div:nth-child(1){height:5px;}
#methane div:nth-child(2){height:5px;}
#methane div:nth-child(3){top:-55px;}
#methane span{top:20px;}
#helium{top:78px;color:#4bfe86;-moz-transition:0.5s all ease-out;-moz-transition-delay:0.3s;-webkit-transition:0.5s all ease-out;-webkit-transition-delay:0.3s;-o-transition:0.5s all ease-out;-o-transition-delay:0.3s;transition:0.5s all ease-out;transition-delay:0.3s;}
#helium div{background:#4bfe86;}
#helium div:nth-child(1){height:20px;}
#helium div:nth-child(2){height:20px;}
#helium div:nth-child(3){top:-70px;}
#helium span{top:45px;}
#hydrogen{top:100px;color:#75d0ff;-moz-transition:0.5s all ease-out;-moz-transition-delay:0.2s;-webkit-transition:0.5s all ease-out;-webkit-transition-delay:0.2s;-o-transition:0.5s all ease-out;-o-transition-delay:0.2s;transition:0.5s all ease-out;transition-delay:0.2s;}
#hydrogen div{background:#75d0ff;}
#hydrogen div:nth-child(1){height:110px;}
#hydrogen div:nth-child(2){height:110px;}
#hydrogen div:nth-child(3){top:-160px;}
#hydrogen span{top:65px}
#uranus-atmosphere div{opacity:1;-moz-transform:translateY(0px);-webkit-transform:translateY(0px);-o-transform:translateY(0px);transform:translateY(0px);}
.shrink #uranus-atmosphere div{opacity:0;-moz-transform:translateY(-500px);-webkit-transform:translateY(-500px);-o-transform:translateY(-500px);transform:translateY(-500px);}
.left #uranus-atmosphere div{opacity:0;-moz-transform:translateX(-1000px);-webkit-transform:translateX(-1000px);-o-transform:translateX(-1000px);transform:translateX(-1000px);}
.right #uranus-atmosphere div{opacity:0;-moz-transform:translateX(500px);-webkit-transform:translateX(500px);-o-transform:translateX(500px);transform:translateX(500px);}
#axial-tilt{float:right;width:43%;height:207px;margin-top:30px;border:1px solid rgba(255,255,255,0.2);background-position:6px 6px;}
#axial-tilt h2{float:right;margin-right:20px;}
#axial-tilt img{-moz-transform:rotate(-98deg);-webkit-transform:rotate(-98deg);-o-transform:rotate(-98deg);transform:rotate(-98deg);position:relative;left:50%;margin-left:-69px;margin-top:30px;opacity:0.9;-moz-transition:0.5s all ease 1.2s;-webkit-transition:0.5s all ease 1.2s;-o-transition:0.5s all ease 1.2s;transition:0.5s all ease 1.2s;}
#axial-tilt span{font-size:30px;color:#555;position:relative;top:-69px;left:29px;opacity:1;-moz-transition:0.2s opacity ease 1.6s;-webkit-transition:0.2s opacity ease 1.6s;-o-transition:0.2s opacity ease 1.6s;transition:0.2s opacity ease 1.6s;}
.shrink #axial-tilt img,.left #axial-tilt img,.right #axial-tilt img{opacity:0;-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg);}
.shrink #axial-tilt span,.left #axial-tilt span,.right #axial-tilt span{opacity:0;}
/* Neptune Content */
#neptune-facts{margin:20px 0 0 -55px;}
#neptune-facts li{float:left;margin:0 10px;}
#neptune-facts li:nth-child(1){color:#75d0ff;}
#neptune-facts li:nth-child(2){color:#ff7575;}
#neptune-facts li:nth-child(3){color:#fff075;margin-right:0px;}
#neptune-facts li img{margin:0 10px;float:left;}
#neptune-facts li:nth-child(1) img{margin-left:0;}
#neptune-facts li span{display:inline;padding:0;}
#neptune-facts li span.carto{float:left;text-transform:uppercase;}
#neptune-facts li:nth-child(1) span.carto{margin-left:64px;}
#neptune-facts li:nth-child(2) span.carto{margin-left:55px;}
#neptune-facts li:nth-child(3) span.carto{margin-left:48px;}
.left #neptune-facts li{opacity:0;-moz-transform:translateX(-1000px);-webkit-transform:translateX(-1000px);-o-transform:translateX(-1000px);transform:translateX(-1000px);}
.right #neptune-facts li{opacity:0;-moz-transform:translateX(500px);-webkit-transform:translateX(500px);-o-transform:translateX(500px);transform:translateX(500px);}
#flyby{width:700px;clear:both;}
#flyby img{vertical-align:middle;float:none;margin-top:20px;display:inline-block;}
#flyby img:nth-child(1){margin-left:30px;position:relative;top:-8px;-moz-transition:0.5s;-moz-transition-delay:1s;-webkit-transition:0.5s;-webkit-transition-delay:1s;-o-transition:0.5s;-o-transition-delay:1s;transition:0.5s;transition-delay:1s;}
#flyby img:nth-child(2){position:relative;left:0px;top:-8px;-moz-transition:0.5s all ease;-moz-transition-delay:1s;-moz-transform-origin:right center;-webkit-transition:0.5s all ease;-webkit-transition-delay:1s;-webkit-transform-origin:right center;-o-transition:0.5s all ease;-o-transition-delay:1s;-o-transform-origin:right center;transition:0.5s all ease;transition-delay:1s;transform-origin:right center;}
#flyby img#voyager2{position:relative;top:26px;left:-92px;margin-left:0px;-moz-transition:0.5s all ease;-moz-transition-delay:0.5s;-webkit-transition:0.5s all ease;-webkit-transition-delay:0.5s;-o-transition:0.5s all ease;-o-transition-delay:0.5s;transition:0.5s all ease;transition-delay:0.5s;}
.shrink img#voyager2{opacity:0;-moz-transform:translateX(-400px) translateY(-100px);-webkit-transform:translateX(-400px) translateY(-100px);-o-transform:translateX(-400px) translateY(-100px);transform:translateX(-400px) translateY(-100px);}
.shrink #flyby img:nth-child(2),.right #flyby img:nth-child(2){-moz-transform:scaleX(0);-webkit-transform:scaleX(0);-o-transform:scaleX(0);transform:scaleX(0);}
.shrink #flyby img:nth-child(1),.right #flyby img:nth-child(1){opacity:0;}
/* Starfield */
#starfield{background:url('../img/bg.jpg') repeat center center;width:5000px;height:200%;left:50%;margin-left:-2500px;z-index:-1;pointer-events:none;-moz-transition:0.5s -moz-transform ease;-webkit-transition:0.5s -webkit-transform ease;-o-transition:0.5s -o-transform ease;transition:0.5s transform ease;}
.mercury #starfield{-moz-transform:translateX(250px);-webkit-transform:translateX(250px);-o-transform:translateX(250px);transform:translateX(250px);}
.venus #starfield{-moz-transform:translateX(175px);-webkit-transform:translateX(175px);-o-transform:translateX(175px);transform:translateX(175px);}
.earth #starfield{-moz-transform:translateX(100px);-webkit-transform:translateX(100px);-o-transform:translateX(100px);transform:translateX(100px);}
.mars #starfield{-moz-transform:translateX(25px);-webkit-transform:translateX(25px);-o-transform:translateX(25px);transform:translateX(25px);}
.jupiter #starfield{-moz-transform:translateX(-50px);-webkit-transform:translateX(-50px);-o-transform:translateX(-50px);transform:translateX(-50px);}
.saturn #starfield{-moz-transform:translateX(-125px);-webkit-transform:translateX(-125px);-o-transform:translateX(-125px);transform:translateX(-125px);}
.uranus #starfield{-moz-transform:translateX(-200px);-webkit-transform:translateX(-200px);-o-transform:translateX(-200px);transform:translateX(-200px);}
.neptune #starfield{-moz-transform:translateX(-275px);-webkit-transform:translateX(-275px);-o-transform:translateX(-275px);transform:translateX(-275px);}
/* General Layout */
html,body{height:100%;width:100%;margin:0;padding:0;}
body{background:#000;overflow:hidden;font-family:Georgia,sans-serif;color:#f4f4f4;background-position:0 0;}
#container{position:absolute;left:0;top:0;pointer-events:none;}
ul#planets{list-style-type:none;height:100px;width:50%;}
ul#planets li{position:absolute;left:0px;top:0px;-moz-transform-origin:center center;-webkit-transform-origin:center center;-o-transform-origin:center center;transform-origin:center center;background:transparent;}
ul#planets.delayed,#instructions.delayed{-moz-transition-delay:1s;-webkit-transition-delay:1s;-o-transition-delay:1s;transition-delay:1s;}
.planet{overflow:visible;-moz-transform-origin:center center;-webkit-transform-origin:center center;-o-transform-origin:center center;transform-origin:center center;}
.planet .clipmask{border-radius:50%;-webkit-border-radius:300px;-o-border-radius:300px;overflow:hidden;}
.planet:hover{cursor:pointer;}
.planet{pointer-events:none;z-index:0;}
.system .planet{pointer-events:auto;z-index:2;}
#saturn{margin-top:-350px;}
#uranus{margin-top:-300px;}
#glow{position:absolute;top:0px;left:50%;margin-left:-696px;pointer-events:none;opacity:0;-moz-transform-origin:center 0;-moz-transform:scale(0);-webkit-transform-origin:center 0;-webkit-transform:scale(0);-o-transform-origin:center 0;-o-transform:scale(0);transform-origin:center 0;transform:scale(0);}
.system #glow{opacity:1;-moz-transform:scale(1);-webkit-transform:scale(1);-o-transform:scale(1);transform:scale(1);}
#title{position:absolute;width:600px;left:50%;top:0;margin-left:-300px;text-align:center;opacity:0;}
#title h1{text-shadow:0px 5px 0px #999;margin-bottom:0px;padding-bottom:0px;line-height:120px;}
#title h1{text-align:left;padding-left:105px;}
/* Ugly win xp chrome fix */
#title h1 span{position:absolute;top:22px;left:82px;text-shadow:none;letter-spacing:1.5px;}
#title #subtitle{font-variant:small-caps;display:block;color:#999;margin-top:-15px;}
/* Absolutely positioned due to a weird difference between Fx4 Mac Os and Fx4 Win Xp */
.showcredits #title:hover{cursor:pointer;}
.system #title{opacity:1;}
#instructions{position:absolute;left:50%;margin-left:-170px;width:300px;text-align:center;bottom:15%;text-transform:uppercase;font-size:14px;color:#aaa;border-radius:5px;background:rgba(255,255,255,0.1);padding:20px;opacity:0;}
.system #instructions{opacity:1;}
#instructions.glowing{color:#ccc;}
#toggle-credits{position:absolute;bottom:6%;left:50%;width:150px;margin-left:-75px;color:#aaa;text-align:center;opacity:0;z-index:6;-moz-transition:0.25s text-shadow ease,0.5s opacity linear;-webkit-transition:0.25s all ease;-o-transition:0.25s all ease;transition:0.25s all ease;}
#toggle-credits:hover{cursor:pointer;color:#fff;text-shadow:0px 0px 15px #fff;}
#toggle-credits .marketing{font-size:18px;width:98px;}
.system #toggle-credits{opacity:1;}
/* Credits */
.showcredits ul#planets{opacity:0;pointer-events:none;}
.showcredits li.planet{pointer-events:none;}
#credits{position:absolute;left:50%;top:35%;width:460px;height:350px;margin:0 0 0 -230px;opacity:0;pointer-events:none;z-index:0;-moz-transition:1s all ease-out 0s;-webkit-transition:1s all ease-out 0s;-o-transition:1s all ease-out 0s;transition:1s all ease-out 0s;}
#credits a{-moz-transition:0.2s all ease;-webkit-transition:0.2s all ease;-o-transition:0.2s all ease;transition:0.2s all ease;}
#credits a:hover{text-shadow:0px 0px 5px #fff;-moz-text-shadow:0px 0px 5px #fff;-webkit-text-shadow:0px 0px 5px #fff;-o-text-shadow:0px 0px 5px #fff;}
#credits.alwaysontop{z-index:5;}
#madeby{display:block;margin:0 0 30px 0;text-align:center;font-size:14px;opacity:0;-moz-transition:1s all ease;-webkit-transition:1s all ease;-o-transition:1s all ease;transition:1s all ease;}
#door div{height:75px;width:45px;margin:0 auto;}
#door div:nth-child(1){background:#fff url('../img/astronauts.png') no-repeat bottom center;}
#door div:nth-child(2){height:80px;margin-top:-80px;background:#000 url('../img/bg.jpg');-moz-transform-origin:center 0;-moz-transition:1s all ease;-webkit-transform-origin:center 0;-webkit-transition:1s all ease;-o-transform-origin:center 0;-o-transition:1s all ease;transform-origin:center 0;transition:1s all ease;}
#doorlight div{width:111px;height:60px;margin:0 auto;}
#doorlight div:nth-child(1){background:#000 url('../img/doorlight.png') no-repeat top center;}
#doorlight div:nth-child(2){background:#000 url('../img/bg.jpg') repeat;margin-top:-60px;-moz-transform-origin:center bottom;-moz-transition:1s all ease;-moz-transform:scaleY(1);-webkit-transform-origin:center bottom;-webkit-transition:1s all ease;-webkit-transform:scaleY(1);-o-transform-origin:center bottom;-o-transition:1s all ease;-o-transform:scaleY(1);transform-origin:center bottom;transition:1s all ease;transform:scaleY(1);}
#authors{position:relative;top:-130px;margin-bottom:-130px;-moz-transition:0.5s all ease;-moz-transform:scale(0);-webkit-transition:0.5s all ease;-webkit-transform:scale(0);-o-transition:0.5s all ease;-o-transform:scale(0);transition:0.5s all ease;transform:scale(0);}
#authors p{width:150px;display:inline-block;}
#authors span{display:block;line-height:25px;text-align:center;}
#authors p span:nth-child(1){font-size:20px;}
#authors p span:nth-child(2){font-size:15px;}
#authors p span:nth-child(3){font-size:14px;}
#franck{margin-left:-150px;position:absolute;right:0px;top:0px;}
#typefaces{margin-top:50px;text-align:center;opacity:0;color:#ddd;-moz-transition:1s all ease;-webkit-transition:1s all ease;-o-transition:1s all ease;transition:1s all ease;}
#typefaces header span{display:inline-block;}
#typefaces .separator{height:1px;width:183px;border-bottom:1px solid #ccc;}
#title-hr{display:block;margin:0 auto;height:25px;width:85px;font-size:16px;text-shadow:0px 0px 10px #000;}
#typefaces ul{list-style-type:none;text-align:left;margin:20px 0 0 0;padding:0;}
#typefaces li{float:left;padding:0 15px;min-width:60px;}
#typefaces li.carto,#typefaces li span.marketing{font-size:12px;}
#typefaces li:first-child{padding-left:0;}
#typefaces li:last-child{padding-right:0;}
.showcredits #credits{opacity:1;pointer-events:auto;}
.showcredits #madeby{opacity:1;-moz-transition-delay:1s;-webkit-transition-delay:1s;-o-transition-delay:1s;transition-delay:1s;}
.showcredits #door div:nth-child(2){-moz-transform:scaleY(0);-moz-transition-delay:1s;-webkit-transform:scaleY(0);-webkit-transition-delay:1s;-o-transform:scaleY(0);-o-transition-delay:1s;transform:scaleY(0);transition-delay:1s;}
.showcredits #doorlight div:nth-child(2){-moz-transform:scaleY(0);-moz-transition-delay:1s;-webkit-transform:scaleY(0);-webkit-transition-delay:1s;-o-transform:scaleY(0);-o-transition-delay:1s;transform:scaleY(0);transition-delay:1s;}
.showcredits #authors{-moz-transform:scale(1);-moz-transition-delay:2s;-webkit-transform:scale(1);-webkit-transition-delay:2s;-o-transform:scale(1);-o-transition-delay:2s;transform:scale(1);transition-delay:2s;}
.showcredits #typefaces{opacity:1;-moz-transition-delay:3s;-webkit-transition-delay:3s;-o-transition-delay:3s;transition-delay:3s;}
.showcredits #instructions{opacity:0;}
/* Loading screen */
ul#planets.loading{opacity:0;pointer-events:none;}
#instructions.loading,#toggle-credits.loading{opacity:0;}
/* Counters */
 #counters div{-moz-transition-property:opacity;-webkit-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity;-moz-transition-duration:1.5s;-webkit-transition-duration:1.5s;-o-transition-duration:1.5s;transition-duration:1.5s;-moz-transition-timing-function:ease-out;-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;}
/* Media Queries */
@media screen and (min-width:2000px){#ruler{width:15000px;}
#starfield{width:10000px;margin-left:-5000px;}
}
@media screen and (max-width:1500px){section.content{-moz-transform:scale(0.9);-moz-transform-origin:0 center;-webkit-transform:scale(0.9);-webkit-transform-origin:0 center;-o-transform:scale(0.9);-o-transform-origin:0 center;transform:scale(0.9);transform-origin:0 center;}
}
@media screen and (max-width:1300px){section.content{-moz-transform:scale(0.8);-moz-transform-origin:0 center;-webkit-transform:scale(0.8);-webkit-transform-origin:0 center;-o-transform:scale(0.8);-o-transform-origin:0 center;transform:scale(0.8);transform-origin:0 center;}
}
@media screen and (max-width:1100px){section.content{-moz-transform:scale(0.6);-moz-transform-origin:0 center;-webkit-transform:scale(0.6);-webkit-transform-origin:0 center;-o-transform:scale(0.6);-o-transform-origin:0 center;transform:scale(0.6);transform-origin:0 center;}
#title,#credits{-moz-transform:scale(0.7);-moz-transform-origin:center 0;-webkit-transform:scale(0.7);-webkit-transform-origin:center 0;-o-transform:scale(0.7);-o-transform-origin:center 0;transform:scale(0.7);transform-origin:center 0;}
#counter{-moz-transform:scale(0.7);-moz-transform-origin:center bottom;-webkit-transform:scale(0.7);-webkit-transform-origin:center bottom;-o-transform:scale(0.7);-o-transform-origin:center bottom;transform:scale(0.7);transform-origin:center bottom;}
#ruler{-moz-transform:scale(0.7);-moz-transform-origin:left bottom;-webkit-transform:scale(0.7);-webkit-transform-origin:left bottom;-o-transform:scale(0.7);-o-transform-origin:left bottom;transform:scale(0.7);transform-origin:left bottom;}
#instructions,#toggle-credits,#back{-moz-transform:scale(0.7);-webkit-transform:scale(0.7);-o-transform:scale(0.7);transform:scale(0.7);}
#previous,#next{height:70px;margin-top:-35px;width:160px;}
#previous img,#next img{margin:20px 19px;width:30px;}
.mercury #ruler{left:-700px;}
.venus #ruler{left:-1400px;}
.earth #ruler{left:-2100px;}
.mars #ruler{left:-2800px;}
.jupiter #ruler{left:-3500px;}
.saturn #ruler{left:-4200px;}
.uranus #ruler{left:-4900px;}
.neptune #ruler{left:-5600px;}
}
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
831.27 KB
html5特效
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章