if ( ! Detector.webgl ) Detector.addGetWebGLMessage();

			var SCREEN_WIDTH = window.innerWidth;
			var SCREEN_HEIGHT = window.innerHeight;
            
            
			var glitchPass;
            
            
			var camera, scene, renderer, composer, composer_;
            
            var mesh        = [];
            var particle    = [];
            var light       = [];
            
            var superr;
            
            
            var luzTxika;
            
            
            
            var camera1, scene1;
            var mesh1=[];
            var light1=[];
            
            
            var camera2, scene2, composer2;
            var mesh2=[];
            var light2=[];
            
            
            var camera3, scene3, composer3;
            var mesh3=[];
            var light3=[];
            
            
            var camera4, scene4, composer4, composer4_;
            var mesh4=[];
            var light4=[];
            
            
            
            
			var clock = new THREE.Clock();

            
            var audio = new Audio();
            audio .src = 'mp3/DJ_Mar.S._Aka_One_Milk_-_Requiem_For_A_Milk.mp3';
            audio.oncanplay = function() {
                
                init();
                animate();
            };
            
            
            
			function init() {

				var time = Date.now() * 0.0005;
                
				var container = document.getElementById( 'container' );
                
                renderer = new THREE.WebGLRenderer( { antialias: true } );
                
                
                
                
				camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 1, 1000 );
				camera.position.y = 0.5;
				camera.position.z = 1;
                
				camera1 = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 1, 1000 );
				camera1.position.x = -1;
				camera1.position.y = 0;
				camera1.position.z = -4;
                
				camera2 = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 1, 1000 );
				camera2.position.x = 0;
				camera2.position.y = 0;
				camera2.position.z = 100;
                
				camera3 = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 1, 1000 );
				camera3.position.x = 0;
				camera3.position.y = 0;
				camera3.position.z = 100;
                
				camera4 = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 1, 1000 );
				camera4.position.x = 0;
				camera4.position.y = 0;
				camera4.position.z = 100;

                
                
                
                
				scene = new THREE.Scene();
				scene1 = new THREE.Scene();
				scene2 = new THREE.Scene();
				scene3 = new THREE.Scene();
				scene4 = new THREE.Scene();

                
                
                
                scene.fog = new THREE.Fog( 0xf2f7ff, 1, 25000 );
                scene1.fog = new THREE.Fog( 0xf2f7ff, 1, 25000 );
                scene2.fog = new THREE.Fog( 0xf2f7ff, 1, 25000 );
                scene3.fog = new THREE.Fog( 0xf2f7ff, 1, 25000 );
                scene4.fog = new THREE.Fog( 0xf2f7ff, 1, 25000 );
                
                
                
                
                
                scene.add( new THREE.AmbientLight( 0x000000 ) );
                scene1.add( new THREE.AmbientLight( 0x000000 ) );
                scene2.add( new THREE.AmbientLight( 0x000000 ) );
                scene3.add( new THREE.AmbientLight( 0x000000 ) );
                scene4.add( new THREE.AmbientLight( 0x000000 ) );
                
                
                
                
                
				var sphere = new THREE.SphereGeometry( 0.001, 16, 8 );
                
                superr = new THREE.PointLight( 0xff0000, 10.5, 55 );
                    
                superr.add(new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( { color: 0xff0000 } ) ));
                superr.position.x = 0;
                superr.position.y = 0;
                superr.position.z = -10;
                
                scene.add( superr );
                
                
                
                
                
				var sphere = new THREE.SphereGeometry( 0.001, 16, 8 );
                
                luzTxika = new THREE.PointLight( 0x0000ff, 5.5, 55 );
                    
                luzTxika.add(new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( { color: 0x0000ff } ) ));
                luzTxika.position.x = 0;
                luzTxika.position.y = 0;
                luzTxika.position.z = -10;
                
                scene.add( luzTxika );
                
                
                
                
                
                for(a=0;a<35;a++){
                    if(a%2==1)
                        light[a] = new THREE.PointLight( 0xffffff, 0.5, 55 );
                    else
                        light[a] = new THREE.PointLight( 0xffffff, 0.5, 55 );
                    
                    light[a].add(new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( { color: 0xff0000 } ) ));
                    light[a].position.x = 0;
                    light[a].position.y = 0;
                    light[a].position.z = -a*11;

                    scene.add( light[a] );
                    
                    
                    
                    
                   var geometry = new THREE.BoxGeometry( 0.6, 0.6, 0.6 );
                    
                    
                    
                    
                    
                    
                    var texture = THREE.ImageUtils.loadTexture( "textures/azul.png" );
                    var material = new THREE.MeshPhongMaterial( { color: 0xffffff, map: texture } );

                    texture.anisotropy = renderer.getMaxAnisotropy();;
                    texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
                    
                    particle[a] = new THREE.Mesh( geometry, material );
                    particle[a].position.x = 0;
                    particle[a].position.y = 0;
                    particle[a].position.z = -a*11;

                    scene.add( particle[a] );

                    
                    
                    
                    
                    
                    
                    var aleatori = parseInt((Math.random()*2));
                    
                    if(aleatori==0)
                        var texture = THREE.ImageUtils.loadTexture( "textures/cubos.gif" );
                    if(aleatori==1)
                        var texture = THREE.ImageUtils.loadTexture( "textures/circulo.png" );
                    
                    var material = new THREE.MeshPhongMaterial( { color: 0xffffff, map: texture } );

                    texture.anisotropy = renderer.getMaxAnisotropy();
                    texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
                    //texture.repeat.set( 111, 111 );
                    
                    
                    
                    
                    
                    
                    
                    var geometry = new THREE.BoxGeometry( 10, 10, 0.1 );
                    
                    var meshed = [];
                    for(i=0;i<16;i++){
                        meshed[i] = new THREE.Mesh( geometry, material );
                        meshed[i].position.x = Math.sin(i*0.7855) * 25;
                        meshed[i].position.y = Math.cos(i*0.7855) * 25;
                        meshed[i].position.z = -a*11;

                        meshed[i].lookAt( particle[a].position );

                        scene.add( meshed[i] );
                    }
                    
                    mesh[mesh.length] = meshed;
                }
                
                
                
                
                
                var geometry = new THREE.SphereGeometry( 1, 32, 16 );
                /*
                var texture = THREE.ImageUtils.loadTexture( "textures/borde.png" );
                var material = new THREE.MeshPhongMaterial( { color: 0xffffff, map: texture } );

                texture.anisotropy = renderer.getMaxAnisotropy();;
                texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
                */
                
                var imgTexture = THREE.ImageUtils.loadTexture( "textures/lavatile.jpg" );
				imgTexture.repeat.set( 4, 2 );
				imgTexture.wrapS = imgTexture.wrapT = THREE.RepeatWrapping;
				imgTexture.anisotropy = 16;
                var shininess = 50, specular = 0x333333, bumpScale = 1, shading = THREE.SmoothShading;
                
                var material = new THREE.MeshPhongMaterial( { map: imgTexture, bumpMap: imgTexture, bumpScale: bumpScale, color: 0x00ff00, specular: specular, shininess: shininess, shading: shading } );
                
                
                for(a=-3, u=0;a<3;a++, u++){
                    var fila=[];
                    for(i=-3, e=0;i<3;i++, e++){
                        fila[e] = new THREE.Mesh( geometry, material );
                        fila[e].position.x = i*2;
                        fila[e].position.y = (a+0.5)*2;
                        fila[e].position.z = -10;

                        scene1.add( fila[e] );
                    }
                    
                    mesh1[u] = fila;
                }
                
                
                
				var sphere = new THREE.SphereGeometry( 0.01, 16, 8 );
                var material = new THREE.MeshBasicMaterial( { color: 0x0000ff } ) ;
                
                light1[0] = new THREE.PointLight( 0x0000ff, 6, 11 );
                    
                light1[0].add(new THREE.Mesh( sphere, material));
                
                light1[0].position.x = 0;
                light1[0].position.y = -2;
                light1[0].position.z = 1;

                scene1.add( light1[0] );
                
                
                light1[1] = new THREE.PointLight( 0x0000ff, 55, 10.7 );
                    
                light1[1].add(new THREE.Mesh( sphere, material));
                
                light1[1].position.x = 0;
                light1[1].position.y = -2;
                light1[1].position.z = 1;

                scene1.add( light1[1] );
                
                
                light1[2] = new THREE.PointLight( 0xffffff, 1, 50 );
                    
                light1[2].add(new THREE.Mesh( sphere, material));
                
                light1[2].position.x = -1;
                light1[2].position.y = 0;
                light1[2].position.z = 15;

                scene1.add( light1[2] );
                
                
				var sphere = new THREE.SphereGeometry( 0.01, 16, 8 );
                var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } ) ;
                
                light1[3] = new THREE.PointLight( 0xff0000, 6, 11 );
                    
                light1[3].add(new THREE.Mesh( sphere, material));
                
                light1[3].position.x = 0;
                light1[3].position.y = -2;
                light1[3].position.z = 1;

                scene1.add( light1[3] );
                
                
                light1[4] = new THREE.PointLight( 0xff0000, 55, 10.7 );
                    
                light1[4].add(new THREE.Mesh( sphere, material));
                
                light1[4].position.x = 0;
                light1[4].position.y = -2;
                light1[4].position.z = 1;

                scene1.add( light1[4] );
                
                
                
                
                
                
                
                
                
                
                
                
                var geometry = new THREE.BoxGeometry( 40, 40, 10 );
                
                var texture = THREE.ImageUtils.loadTexture( "textures/circulo.png" );
                    
                var material = new THREE.MeshPhongMaterial( { color: 0xffffff, map: texture } );

                texture.anisotropy = renderer.getMaxAnisotropy();
                texture.wrapS = texture.wrapT = THREE.RepeatWrapping;

                
                mesh2[0] = new THREE.Mesh( geometry, material );
                mesh2[0].position.x = -25;
                mesh2[0].position.y = 0;
                mesh2[0].position.z = 0;

                scene2.add( mesh2[0] );
                
                mesh2[0] = new THREE.Mesh( geometry, material );
                mesh2[0].position.x = 25;
                mesh2[0].position.y = 0;
                mesh2[0].position.z = 0;

                scene2.add( mesh2[0] );
                
                
                
                
				var sphere = new THREE.SphereGeometry( 0.01, 16, 8 );
                var material = new THREE.MeshBasicMaterial( { color: 0xffffff } ) ;
                
                light2[0] = new THREE.PointLight( 0xffffff, 1, 12 );
                light2[0].add(new THREE.Mesh( sphere, material));
                light2[0].position.z = 10;
                scene2.add( light2[0] );
                
                var material = new THREE.MeshBasicMaterial( { color: 0xffffff } ) ;
                light2[1] = new THREE.PointLight( 0xffffff, 1, 12 );
                light2[1].add(new THREE.Mesh( sphere, material));
                light2[1].position.z = 10;
                scene2.add( light2[1] );
                
                
                
                
                
                
                
                
                var geometry = new THREE.SphereGeometry( 99, 64, 32 );
                
                var imgTexture = THREE.ImageUtils.loadTexture( "textures/lavatile.jpg" );
				imgTexture.repeat.set( 2, 1 );
				imgTexture.wrapS = imgTexture.wrapT = THREE.RepeatWrapping;
				imgTexture.anisotropy = 16;
                
                var shininess = 50, specular = 0x333333, bumpScale = 1, shading = THREE.SmoothShading;
                
                var material = new THREE.MeshPhongMaterial( { map: imgTexture, bumpMap: imgTexture, bumpScale: bumpScale, color: 0x00ff00, specular: specular, shininess: shininess, shading: shading } );
                
                
                mesh3[0] = new THREE.Mesh( geometry, material );
                mesh3[0].position.x = 0;
                mesh3[0].position.y = 0;
                mesh3[0].position.z = 0;

                scene3.add( mesh3[0] );
                
                
                var material = new THREE.MeshBasicMaterial( { color: 0xffaa00, wireframe: true } );
                mesh3[1] = new THREE.Mesh( geometry, material );
                mesh3[1].position.x = 0;
                mesh3[1].position.y = 0;
                mesh3[1].position.z = 1000;

                scene3.add( mesh3[1] );
                
                
                
                light3[0] = new THREE.Mesh( new THREE.SphereGeometry( 0.0001, 8, 8 ), new THREE.MeshBasicMaterial( { color: 0xffffff } ) );
				scene3.add( light3[0] );

				// Lights



				var pointLight = new THREE.PointLight( 0xffffff, 2, 800 );
				light3[0].add( pointLight );
                
                
                var geometry = new THREE.SphereGeometry( 25, 32, 16 );
                
                var imgTexture = THREE.ImageUtils.loadTexture( "textures/lavatile.jpg" );
				imgTexture.repeat.set( 2, 1 );
				imgTexture.wrapS = imgTexture.wrapT = THREE.RepeatWrapping;
				imgTexture.anisotropy = 16;
                
                var shininess = 50, specular = 0x333333, bumpScale = 1, shading = THREE.SmoothShading;
                
                var material = new THREE.MeshPhongMaterial( { map: imgTexture, bumpMap: imgTexture, bumpScale: bumpScale, color: 0x00ff00, specular: specular, shininess: shininess, shading: shading } );
                
                
                mesh4[0] = new THREE.Mesh( geometry, material );
                mesh4[0].position.x = -50;
                mesh4[0].position.y = 0;
                mesh4[0].position.z = 0;

                scene4.add( mesh4[0] );
                
                mesh4[1] = new THREE.Mesh( geometry, material );
                mesh4[1].position.x = 50;
                mesh4[1].position.y = 0;
                mesh4[1].position.z = 0;

                scene4.add( mesh4[1] );
                
                mesh4[2] = new THREE.Mesh( geometry, material );
                mesh4[2].position.x = 0;
                mesh4[2].position.y = -50;
                mesh4[2].position.z = 0;

                scene4.add( mesh4[2] );
                
                mesh4[3] = new THREE.Mesh( geometry, material );
                mesh4[3].position.x = 0;
                mesh4[3].position.y = 50;
                mesh4[3].position.z = 0;

                scene4.add( mesh4[3] );
                
                
                
                light4[0] = new THREE.Mesh( new THREE.SphereGeometry( 1, 16, 8 ), new THREE.MeshBasicMaterial( { color: 0xffffff } ) );
                light4[0].position.x = 0;
                light4[0].position.y = 0;
                light4[0].position.z = 10;
				scene4.add( light4[0] );
                var pointLight = new THREE.PointLight( 0xffffff, 2, 30 );
				light4[0].add( pointLight );
                

				renderer = new THREE.WebGLRenderer();
				renderer.setPixelRatio( window.devicePixelRatio );
				renderer.setSize( window.innerWidth, window.innerHeight );
				container.appendChild( renderer.domElement );

                
				//

				window.addEventListener( 'resize', onWindowResize, false );
                
                // postprocessing

				composer = new THREE.EffectComposer( renderer );
				composer.addPass( new THREE.RenderPass( scene, camera ) );
                
				composer3 = new THREE.EffectComposer( renderer );
				composer3.addPass( new THREE.RenderPass( scene3, camera3 ) );
                
				composer4 = new THREE.EffectComposer( renderer );
				composer4.addPass( new THREE.RenderPass( scene4, camera4 ) );

				glitchPass = new THREE.GlitchPass();
				glitchPass.renderToScreen = true;
				composer.addPass( glitchPass );
				composer3.addPass( glitchPass );
				composer4.addPass( glitchPass );
                
                
                // postprocessing

				composer2 = new THREE.EffectComposer( renderer );
				composer2.addPass( new THREE.RenderPass( scene2, camera2 ) );

				var effect = new THREE.ShaderPass( THREE.DotScreenShader );
				effect.uniforms[ 'scale' ].value = 4;
				composer2.addPass( effect );

				var effect = new THREE.ShaderPass( THREE.RGBShiftShader );
				effect.uniforms[ 'amount' ].value = 0.0015;
				effect.renderToScreen = true;
				composer2.addPass( effect );
                
				composer_ = new THREE.EffectComposer( renderer );
				composer_.addPass( new THREE.RenderPass( scene, camera ) );
                var effect = new THREE.ShaderPass( THREE.DotScreenShader );
				effect.uniforms[ 'scale' ].value = 4;
				composer_.addPass( effect );
                
				var effect = new THREE.ShaderPass( THREE.RGBShiftShader );
				effect.uniforms[ 'amount' ].value = 0.0015;
				effect.renderToScreen = true;
				composer_.addPass( effect );
                
				composer4_ = new THREE.EffectComposer( renderer );
				composer4_.addPass( new THREE.RenderPass( scene4, camera4 ) );
                var effect = new THREE.ShaderPass( THREE.DotScreenShader );
				effect.uniforms[ 'scale' ].value = 4;
				composer4_.addPass( effect );
                
				var effect = new THREE.ShaderPass( THREE.RGBShiftShader );
				effect.uniforms[ 'amount' ].value = 0.0015;
				effect.renderToScreen = true;
				composer4_.addPass( effect );
                
                
                
                audio.play();
                audio.volume = 0.2;
			}

            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
			function onWindowResize() {

				camera.aspect = window.innerWidth / window.innerHeight;
				camera.updateProjectionMatrix();

				renderer.setSize( window.innerWidth, window.innerHeight );

			}

            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
			//

			function animate() {

				requestAnimationFrame( animate );

                
                if(contador < 3050)
                    render();
                if(contador >= 3050 && contador < 3300)
                    render1();
                if(contador >= 3300 && contador < 3600)
                    render();
                if(contador >= 3600 && contador < 4000)
                    render2();
                if(contador >= 4000 && contador < 5150)
                    render3();
                if(contador >= 5150 && contador < 5600)
                    render1();
                if(contador >= 5600 && contador < 5700)
                    render();
                if(contador >= 5700)
                    render4();
			}

            
            
            

            
            
            
            
            
            var contador4 = 0;
            var opacidad = 1;
            function render4(){
				var time    = Date.now() * 0.0005;
                
				var delta = clock.getDelta();
                
                
                mesh4[0].position.x = (Math.sin(contador4*0.1) * 25) - 50;
                mesh4[1].position.x = -(Math.sin(contador4*0.1) * 25) + 50;
                
                mesh4[2].position.y = -(Math.sin(contador4*0.1) * 25) - 50;
                mesh4[3].position.y = (Math.sin(contador4*0.1) * 25) + 50;
                
                
                contador4++;
                contador++;
                
                if(contador4 < 25)
                    composer4.render();
                if(contador4 >= 25 && contador4 < 350)
                    renderer.render( scene4, camera4 );
                if(contador4 >= 350 && contador4 < 650)
                    composer4_.render();
                
                if(contador4 >= 500){
                    container.style.opacity = opacidad;
                    document.getElementById('creditos').style.opacity = 1-opacidad;
                    opacidad*= 0.999;
                }
                    
            }
            
            
            
            
            var contador3 = 0;
            function render3(){
                
                glitchPass.goWild=true;
				var time    = Date.now() * 0.0005;
                
				var delta = clock.getDelta();
                
                
                light3[0].position.x = Math.sin( time * 5 ) * 300;
				light3[0].position.y = Math.cos( time * 3 ) * 400;
				//light3[0].position.z = Math.cos( time ) * 300;
                
                
                if((contador3 > 200 && contador3 < 250) || (contador3 > 400 && contador3 < 450) || (contador3 > 600 && contador3 < 650) || (contador3 > 800 && contador3 < 1000)){
				    camera3.position.z += 1;
                    
                    mesh3[0].position.z = 1000;
                    mesh3[1].position.z = 0;
                    
				    composer3.render();
                }
                else{
                    mesh3[0].position.z = 0;
                    mesh3[1].position.z = 1000;
                    
                    if(contador3 < 1000){
                        camera3.position.z += 0.05;
                        
                        renderer.render( scene3, camera3 );
                    }
                    else{
                        if((contador3 > 1100 && contador3 < 1130) || (contador3 > 1150 && contador3 < 1170)){
                            mesh3[0].position.z = 1000;
                            mesh3[1].position.z = 0;
                            
				            composer3.render();
                        }
                        else{
                            mesh3[0].position.x = Math.sin( time * 4) * 200;
                            mesh3[1].position.x = Math.sin( time * 4) * 200;
                            mesh3[0].position.y = Math.cos( time * 4) * 100;
                            mesh3[1].position.y = Math.cos( time * 4) * 100;
                            
                            renderer.render( scene3, camera3 );
                        }
                    }
                }
                
                contador3++;
                contador++;
            }

            
            
            
            
            
            var contador2 = 0;
            function render2(){
				var time    = Date.now() * 0.0005;
                
				var delta = clock.getDelta();
                
                
                
                
                light2[0].position.x = (Math.sin(time*12)*15)-26;
                light2[0].position.y = Math.cos(time*12)*15;
                
                light2[1].position.x = -(Math.sin(time*12)*15)+26;
                light2[1].position.y = Math.cos(time*12)*15;
                
                
                contador2++;
                contador++;
                
                if(contador >=5150 && contador < 5170)
				    composer2.render();
                else
                    renderer.render( scene2, camera2 );
            }
            
            
            
            
            
            
            var contador1 = 0;
            function render1(){
				var time    = Date.now() * 0.0005;
                
				var delta = clock.getDelta();
                
                
                
                
                light1[0].position.x = light1[1].position.x = Math.sin(time*6)*6;
                light1[0].position.y = light1[1].position.y = Math.cos(time*3)*6;
                
                light1[2].position.z = (Math.sin(time)*55);
                
                light1[3].position.x = light1[4].position.x = -(Math.sin(time*6)*6);
                light1[3].position.y = light1[4].position.y = -(Math.cos(time*3)*6);
                //light1[0].position.z = Math.cos(time*12)*1.5;
                
                sum = 0;
                for(i=0;i<mesh1.length;i++){
                    for(e=0;e<mesh1[i].length;e++){
                        movi = e%2==1 ? ((contador+sum)* 0.02) : -((contador+sum)* 0.01);
                        
                        mesh1[i][e].rotation.y = movi;
                        sum+=200;
                    }
                }
                
                contador1++;
                contador++;
                
                
                renderer.render( scene1, camera1 );
            }
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            var contador = 0;
            var posZ = -55;
            var mover = 0;
            var radioJiroCamara = 0;
            var move = 0;
            var camino = 0;
            var caminoSuperr = 0;
            var aumentoRadioPuntosCentro = 0;
            var bajar = 0;
			function render() {
				composer.render();
				var time    = Date.now() * 0.0005;
                
				var delta = clock.getDelta();

                
                
                
                if(move < 3)
                move+=0.005;
                
                if(contador >= 2950){
                    if(move < 5)
                        move+=0.005;
                }
                
                camera.position.x = Math.sin(time*5.5) * radioJiroCamara;
                camera.position.y = (Math.cos(time*5.5) * radioJiroCamara)+1;
                camera.position.z-=move;
                
                
                //camera.lookAt( light[light.length-1].position );

                
                
                
                
                
                
                
                
                
                for(a=0;a<mesh.length;a++){
                    
                    if(a%2==1){
                        light[a].position.x = Math.sin(  time * 5.8 ) * 15;
                        light[a].position.y = Math.cos(  time * 5.8 ) * 15;
                    }
                    else{
                        light[a].position.x = -Math.sin(  time * 5.8 ) * 15;
                        light[a].position.y = -Math.cos(  time * 5.8 ) * 15;
                    }
                    
                    for(i=0;i<mesh[a].length;i++){
                        mesh[a][i].position.x = Math.sin((i+time)*(0.7855/2)) * 25;
                        
                        if(contador >= 2950)
                            mesh[a][i].position.y = Math.cos((i+time)*(0.7855/2)) * 25-(a*bajar);
                        else
                            mesh[a][i].position.y = (Math.cos((i+time)*(0.7855/2)) * 25);
                        
                        mesh[a][i].lookAt( particle[a].position );
                    }
                }
                
                /*
                if(contador >= 2950)
                    if(bajar <= 5)
                        bajar+=0.1
                */
                
                
                
                // INTERACCION CON EL CONTADOR I MOVIMIENTOS DE RADIO DE JIRO DE CAMARA Y LUCES TRASERAS
                
                if(contador >= 450 && contador <=509){
                    if(caminoSuperr < 60) caminoSuperr += 1;
                    else caminoSuperr = 0;
                }
                
                
                if(contador >= 1400 && contador < 2950){
                    if(caminoSuperr < 60) caminoSuperr += 2;
                    else caminoSuperr = 0;
                }
                
                if(contador >= 2950){
                    if(caminoSuperr < 60) caminoSuperr += 4;
                    else caminoSuperr = 0;
                }
                
                if(contador >= 1000){
                    if(radioJiroCamara < 5) radioJiroCamara += 0.005;
                }
                
                
                
                
                
                
                
                if(camino < 20) camino += 1;
                else camino = 0;
                
                luzTxika.position.z=camera.position.z-10-(6*camino);
                
                superr.position.z=camera.position.z-10-(6*caminoSuperr);
                
                
                
                
                
                
                
                if(contador >= 1500 && contador <= 2000){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            plancha.position.y = 0;
                        }
                    }
                    
                    camera.position.y = 10;
                }
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                if(contador >= 2400 && contador <= 2430){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.x = 0;
                            else
                                plancha.position.x = 20;
                        }
                    }
                    
                    camera.position.x = 10;
                }
                if(contador > 2430 && contador <= 2460){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.x = 0;
                            else
                                plancha.position.x = 20;
                        }
                    }
                    
                    camera.position.x = 10;
                }
                
                if(contador >= 2470 && contador <= 2500){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.y = 0;
                            else
                                plancha.position.y = 20;
                        }
                    }
                    
                    camera.position.y = 10;
                }
                if(contador > 2500 && contador <= 2530){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.y = 0;
                            else
                                plancha.position.y = 20;
                        }
                    }
                    
                    camera.position.y = 10;
                }
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                if(contador >= 2550 && contador <= 2580){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.x = 0;
                            else
                                plancha.position.x = 20;
                        }
                    }
                    
                    camera.position.x = 10;
                }
                if(contador > 2580 && contador <= 2610){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.x = 0;
                            else
                                plancha.position.x = 20;
                        }
                    }
                    
                    camera.position.x = 10;
                }
                
                if(contador >= 2620 && contador <= 2650){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.y = 0;
                            else
                                plancha.position.y = 20;
                        }
                    }
                    
                    camera.position.y = 10;
                }
                if(contador > 2650 && contador <= 2680){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.y = 0;
                            else
                                plancha.position.y = 20;
                        }
                    }
                    
                    camera.position.y = 10;
                }
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                if(contador >= 2690 && contador <= 2720){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.x = 0;
                            else
                                plancha.position.x = 20;
                        }
                    }
                    
                    camera.position.x = 10;
                }
                if(contador > 2720 && contador <= 2750){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.x = 0;
                            else
                                plancha.position.x = 20;
                        }
                    }
                    
                    camera.position.x = 10;
                }
                
                if(contador >= 2760 && contador <= 2790){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.y = 0;
                            else
                                plancha.position.y = 20;
                        }
                    }
                    
                    camera.position.y = 10;
                }
                if(contador > 2790 && contador <= 2820){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.y = 0;
                            else
                                plancha.position.y = 20;
                        }
                    }
                    
                    camera.position.y = 10;
                }
                
                
                
                
                
                if(contador >= 2820 && contador <= 2850){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.x = 0;
                            else
                                plancha.position.x = 20;
                        }
                    }
                    
                    camera.position.x = 10;
                }
                if(contador > 2850 && contador <= 2880){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.x = 0;
                            else
                                plancha.position.x = 20;
                        }
                    }
                    
                    camera.position.x = 10;
                }
                
                if(contador >= 2890 && contador <= 2920){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.y = 0;
                            else
                                plancha.position.y = 20;
                        }
                    }
                    
                    camera.position.y = 10;
                }
                if(contador > 2920 && contador <= 2950){
                    for(a=0;a<mesh.length;a++){
                        var cuadraditos = mesh[a];
                        
                        for(i=0;i<cuadraditos.length;i++){
                            var plancha = cuadraditos[i];
                            
                            if(i%2==1)
                                plancha.position.y = 0;
                            else
                                plancha.position.y = 20;
                        }
                    }
                    
                    camera.position.y = 10;
                }
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                if(parseInt(camera.position.z) <= particle[0].position.z+0.00){
                    var luz = light[0];
                    var punto = particle[0];
                    var cuadros = mesh[0];
                    
                    light = light.slice(1);
                    particle = particle.slice(1);
                    mesh = mesh.slice(1);
                    
                    
                    var posi = light[light.length-1].position.z-11;
                    
                    
                    var posiX = 0;
                    var posiY = 0;
                    
                    if(contador >= 500 && contador <= 1000){
                        var posiX = Math.sin(time)*aumentoRadioPuntosCentro;
                        var posiY = Math.cos(time)*aumentoRadioPuntosCentro;
                        
                        if(aumentoRadioPuntosCentro < 30)
                            aumentoRadioPuntosCentro+=1
                    }
                    if(contador > 1000){
                        var posiX = Math.sin(time)*aumentoRadioPuntosCentro;
                        var posiY = Math.cos(time)*aumentoRadioPuntosCentro;
                        
                        if(aumentoRadioPuntosCentro > 0)
                            aumentoRadioPuntosCentro-=1
                    }
                    
                    
                    
                        
                    luz.position.z = posi;
                    luz.position.y = posiY;
                    light[light.length] = luz;
                    
                    punto.position.z = posi;
                    punto.position.y = posiY;
                    punto.position.x = posiX;
                    particle[particle.length] = punto;
                    
                    
                    for(i=0;i<cuadros.length;i++){
                        cuadros[i].position.z = posi;
                        cuadros[i].position.y = posiY;
                        cuadros[i].lookAt( punto.position );
                    }
                    mesh[mesh.length] = cuadros;
                }

                contador++;
                
                
                if((contador < 200)|| (contador >= 2550 && contador <= 2560) || (contador >= 2580 && contador <= 2590) || (contador >= 2620 && contador <= 2630) || (contador >= 2650 && contador <= 2660)){
				    composer_.render();
                }
                else{
                    if((contador >= 200 && contador < 220) || (contador >= 400 && contador < 420) || (contador >= 800 && contador < 880) || (contador >= 1470 && contador < 1500) || (contador >= 2000 && contador < 2015) || (contador >= 5500 && contador < 5510)){
                        glitchPass.goWild=true;
                        composer.render();
                    }
                    else
                        renderer.render( scene, camera );
                }
			}