function initLevel () {
	levelWidth = 8500;
	levelHeight = 3000;
	levelData;
	respawn;
	imgData = ['Cuitzeo/waves.png', 'Cuitzeo/waves_big.png', 'Cuitzeo/mask.png', 'Cuitzeo/wood_floor.png', 'Cuitzeo/wood_back.png', 'Cuitzeo/wood_front.png', 'Cuitzeo/dirtpath.png','Cuitzeo/tiendacanastas.png', 'cielo.jpg', 'tariacuri.png',
	'Cuitzeo/viejito.png', 'Cuitzeo/viejita.png', 'Cuitzeo/bubble.png', 'Cuitzeo/algaSmall.png', 'Cuitzeo/wood_limit.png', 'Cuitzeo/tariacuri.png', 'Cuitzeo/swimming_down.png', 'Cuitzeo/swimming_up.png', 'Cuitzeo/fondo.png', 'Cuitzeo/alga.png',
	'Cuitzeo/viejito2.png', 'Cuitzeo/casa1.png', 'Cuitzeo/casa2.png', 'Cuitzeo/arbusto.png', 'Cuitzeo/tree.png'];
	audioData = ['Cuitzeo/music', 'Cuitzeo/bubbles'];
	//
	var bienvenida = ["Xanuata: ¡Bienvenido al pueblo de Cuitzeo jovencito!|¿Qué busca un niño como tú en un pueblo tan grande como este?", "Xanuata: Con que estas armando una ofrenda a Curicaueri eh…|Pues seguro que encuentras muchas cosas especiales aquí, nuestro|pueblo se dedica a la agricultura, el cultivo de maíz, la pesca y la caza…", "Xanuata: ¡Sí que nos dedicamos a muchas cosas!",
	"Xanuata: ¿Pero que podrá ser tan especial como para poner en una|ofrenda…? ¡Ya se!", "Xanuata: Si sigues caminando hacia la derecha encontraras el muelle,|ahí tiene su choza el viejo Turupteni.|¡El hace las artesanías de tule más famosas del pueblo!", "Xanuata: Turupteni es un viejito a todo dar, mientras no saltes en su|preciado muelle todo estará bien ¡Buena suerte!"];
	var xanuata = ["Xanuata: Si sigues caminando hacia la derecha encontraras el muelle,|ahí tiene su choza el viejo Turupteni|¡El hace las artesanías de tule más famosas del pueblo!", "Xanuata: El tule es una planta que se obtiene del fondo del lago,|y aunque Turupteni es excepcionalmente bueno moldeándolo,|el recolectarlo no es su punto fuerte."];
	var jurhuri = ["Jurhuri: ¡Hola joven viajero! Siento una energía especial en ti,|pareces tarasco como nosotros…|¡Pero creo que en realidad no sabes mucho de nuestra historia!", "Jurhuri: Sabes, todos los habitantes de este pueblo tenemos nombres|relacionados con el agua; el nombre del muchacho que te recibió,|Xanuata, significa granizo.", "Jurhuri: El nombre del viejo artesano, Turupteni, significa señor de la|lluvia blanca.", "Jurhuri: El nombre de mi hermana, Iurheni, significa caudal de agua|y mi nombre, Jurhuri, significa gota de agua.|¿Verdad que son muy bellos los nombres purépechas?"];
	var iurheni = ["Iurheni: ¡Buenos días joven viajero!|¿Sabías que nuestro pueblo es un centro cultural muy importante?","Iurheni: Aquí se aprecia la influencia de diversas culturas que han|habitado esta zona a través de los años, como la cultura de|Chupicuaro a la que sucedió la influencia cultual teotihuacana y tolteca...","Iurheni: Y finalmente nosotros, los tarascos o purépechas."];
	var turupteniD = ["Turupteni: ¡Vaya sorpresa! No recibo muchos visitantes tan jóvenes|como usted muchachito ¿En qué puedo ayudarle?", "Turupteni: Oh con que una ofrenda a Curicaueri ¡Por supuesto que me|encantaría ayudar! Solo hay un pequeño problema… Ahora mismo no|tengo el tule suficiente para armar un objeto digno del dios del sol.", "Turupteni: El tule es una planta que crece en el fondo del lago|y por mi edad ya no me es sencillo recolectarla.",
	"Turupteni: Tal vez si usted pudiera traerme un poco yo podría hacer|una canasta digna de un dios.|Necesito por lo menos 10 pedazos de tule, pero si me trajera 15…", "Turupteni: ¡El dios del sol estará tan contento que seguro le dará un|reconocimiento especial!"];
	var instrucciones = ["Turupteni: Muchas personas creen que el viejo Turupteni es muy serio,|pero verá joven, esas personas se equivocan.","Turupteni: Si bien es verdad que no permito que salten en mi|muelle y mis modales son de lo más refinados, este viejillo sí|que sabe cómo divertirse.", "Turupteni: ¡Hagamos de la recolección de tule un juego! Si logra|recolectar 10 o más pedazos en 90 segundos será suficiente tule|para hacer la canasta…", "Turupteni: Pero si recolecta más de 15 ¡Le daré un reconocimiento|especial!",
	"Turupteni: Recolectar tule debería ser muy sencillo para un joven|como usted, solo acérquese a las burbujas que salen del fondo|del lago y presione SHIFT.", "Turupteni: ¡Pero no crea que las burbujas se van a quedar ahí|todo el día! Apresúrese o desaparecerán ¡Buena suerte!"];
	var turu1 = ["Turupteni: ¿Cómo le fue en el juego jovencito?|Oh veo que trae 00 pedazos de tule…","Turupteni: Me temo que no son suficientes para hacer una canasta,|por lo menos no una a la altura de Curicaueri.|Vamos no se desanime, inténtelo una vez más."];
	var turu2 = ["Turupteni: ¿Cómo le fue en el juego jovencito?|Excelente, excelente, veo que hay conseguido 00 pedazos de tule.|¡Con esto podré hacer una canasta digna de los dioses!"];
	var turu3 = ["Turupteni: ¿Cómo le fue en el juego jovencito?|¡Maravilloso! Ha encontrado 00 pedazos de tule.|¡Ni siquiera yo en mi juventud era tan bueno buceando!","Turupteni: Es usted toda una leyenda en lo que a la recolección de tule|se refiere.|¡Ahora mismo haré una canasta tan bella como jamás ha habido antes!"];
	//
	var cielo = [[0, false], [8,0,0]];
	var nubes = [[0.2, false], new Clouds(0,0,8000,1000)];
	var wave3 = [[0.6, false], new Wave(1, 2700, 550, 2000, 1000)];
	var wave2 = [[0.8, false], new Wave(0, 3300, 570, 3000, 1000)];
	var wood_back = [[0.8, false], [23, -100, 450], [23, 200, 450], [23, 500, 450], [23, 800, 450], [23, 1100, 450], [24, 2300, 0], [24, 550, 0], [24, 850, 0], [24, 1650, 0]];
	var wood_floor =[[1, true], [-200, 0, 200, 1000], [5380, 690, 3000, 50], [5420, 100, 200, 700], [14, 6000, 530], [14, 7900, 530]];
	var objetos = [[1, false], [7, 3400, 200], [21, 1600, 200], [22, 2200, 150], new NPC(10, 800, 340, xanuata), new NPC(11, 1800, 355, iurheni), new NPC(11, 2400, 355, jurhuri)];
	var wood_front =[[1, false]];
	var wave1 = [[1, false], new Wave(1, 4000, 600, 4000, 1000)];
	var wave0 = [[1.2, false], new Wave(1, 4600, 630, 4500, 1000),];
	var dirt = [[1, true]];
	var tule = [[1, false], new Tule(6000, 500, 1900, 500)]
	var foreground = [[1.2, false], [23, -100, 500], [23, 200, 500], [23, 500, 500], [23, 800, 500], [23, 1100, 500], [23, 1400, 500], [24, 850, 0], [24, 1150, 0]];
	levelData = [cielo, nubes, wave3, wood_back, wave2, wood_floor, objetos, wave1, wood_front, wave0, dirt, tule, foreground];
	respawn = [[0, 200]];

	levelData.init = function () {
		player = new Player (9, [1, 1, 10, 10, 1, 1, 1, 1], 111, 160, 10, 370);
		camera = new Camera ([[-10, 3/4],[3350, 1/2]]);
		ivan = new Ivan (0, 300);
		turupteni = new NPC (10, 5000, 340, turupteniD);
		contador = new Counter (10, 10, 13);
		//levelData[2] = levelData[2].concat(insertTiles(0, -400, 510, 3, 1, 0, 0));
		levelData[3] = levelData[3].concat(insertTiles(4, 3290, 450, 4, 1, 0, 0));
		//levelData[4] = levelData[4].concat(insertTiles(0, -400, 565, 4, 1, 0, 0));
		levelData[5] = levelData[5].concat(insertTiles(3, 3996, 526, 4, 1, 0, 0));
		levelData[6] = levelData[6].concat(player, ivan, turupteni);
		levelData[6] = levelData[6].concat(insertTiles(18, 5000, 900, 5, 1, 0, 0));
		//levelData[7] = levelData[7].concat(insertTiles(1, -400, 630, 5, 1, 0, 0));
		levelData[8] = levelData[8].concat(insertTiles(5, 3996, 480, 4, 1, 0, 0));
		//levelData[9] = levelData[9].concat(insertTiles(1, -400, 695, 5, 1, 0, 0));
		levelData[10] = levelData[10].concat(insertTiles(6, 0, 526, 18, 1, 0, 0));
	}
	levelData.logic = function () {
		if(cutscene==undefined&&fade.state=='idle'){
			cutscene = new Cutscene([[0, 150]], [bienvenida]);
		}
		if(player.x_pos>3350){
			player.jump_speed = 0;
		} else {
			player.jump_speed = 1000;
		}
		if(turupteni.started&&!on_cutscene){
			fade.out();
			if(fade.state=="idle"){
				player.image = imgData[15];
				player.imageCode = 15;
				player.width = 103;
				player.animData = [1, 1, 2, 2, 0, 0, 0, 0];
				player.anim_timer = 0.33;
				player.x_pos = 6700;
				player.y_pos = 530;
				levelData[7][1].alpha = 0.6;
				levelData[9][1].alpha = 0.6;
				running_speed = 250;
				turupteni.started = false;
				game_started = true;
				fade.in();
			}
		}
		if(game_finished&&!on_cutscene){
			fade.out();
			if(fade.state=="idle"){
				player.state='idle';
				player.image = imgData[9];
				turupteni.imageCode = 10;
				turupteni.x_pos = 5000;
				player.x_pos = 4800;
				player.y_pos = 366;
				player.facing = 'right';
				levelData[7][1].alpha = 1;
				levelData[9][1].alpha = 1;
				game_finished= false;
				fade.in();
			}
		}
		if(player.x_pos==4800&&fade.state=='idle'&&!on_cutscene){
			var dialogo;
			if(contador.counter>=15)
				dialogo = ["Turupteni: ¿Cómo le fue en el juego jovencito?|¡Maravilloso! Ha encontrado "+contador.counter+" pedazos de tule.|¡Ni siquiera yo en mi juventud era tan bueno buceando!","Turupteni: Es usted toda una leyenda en lo que a la recolección de tule|se refiere.|¡Ahora mismo haré una canasta tan bella como jamás ha habido antes!"];
			else if (contador.counter>=10)
				dialogo = ["Turupteni: ¿Cómo le fue en el juego jovencito?|Excelente, excelente, veo que hay conseguido "+contador.counter+" pedazos de tule.|¡Con esto podré hacer una canasta digna de los dioses!"];
			else
				dialogo = ["Turupteni: ¿Cómo le fue en el juego jovencito?|Oh veo que trae "+contador.counter+" pedazos de tule…","Turupteni: Me temo que no son suficientes para hacer una canasta,|por lo menos no una a la altura de Curicaueri.|Vamos no se desanime, inténtelo una vez más."];
			cutscene = new Cutscene ([[4400, 150]], [dialogo]);
			player.x_pos = 4801;
		}
		if(player.x_pos==4801&&cutscene.finished) {
			if(contador.counter>=15)
				ending.init("Cuitzeo", ["Haz recolectado un número impresionante de tule", "Tus hazañas siempre serán recordadas en Cuitzeo."]);
			else if(contador.counter>=10)
				ending.init("Cuitzeo");
			else{
				contador.counter = 0;
				contador.drawNumber();
				turupteni.started = true;
			}
		}
	}
	levelData.draw = function (i, displacementRatio) {
		if(game_started||game_finished)
			contador.draw();
		if(game_started&&fade.state=='idle'){
			if(timer_started==false){
				turupteni.imageCode = 20;
				turupteni.x_pos = 5200;
				cutscene = new Cutscene ([[4800, 150]], [instrucciones]);
				timer_started = true;
			} else if(cutscene.finished) {
				context.fillStyle="#FFFFFF";
				if(Math.round(timer)>=60){
					if(Math.round(timer-60)>9)
						timer_string = "1:" + Math.round(timer - 60);
					else
						timer_string = "1:0" + Math.round(timer - 60);
				}
				else {
					if(Math.round(timer)>9)
						timer_string = "0:" + Math.round(timer);
					else
						timer_string = "0:0" + Math.round(timer);
				}
				context.font= "normal 30px Verdana";
				context.fillText(timer_string,860,50);
				if(Math.round(timer)>0) {
					timer-= dt;
				} else {
					cutscene = new Cutscene ([[4800, 150]], [["Se acabó el tiempo"]]);
					game_started = false;
					timer_started = false;
					game_finished = true;
					timer = 90;
				}
			}
		}
	}
}
var turupteni;
var game_started = false;
var game_finished = false;
var timer_started = false;
var timer = 90;
var timer_string;
var contador;
function Tule (x_pos, y_pos, width, height) {
	this.x_pos = x_pos;
	this.y_pos = y_pos;
	this.width = width;
	this.height = height;
	var material = new Array ();
	for(var i=0; i<3; i++){
		material[i] = new Material(this.x_pos + Math.random()*this.width);
	}
	this.draw = function () {
		for(var i=material.length; i--;){
			material[i].time += dt;
			if(material[i].time>=5){
				material[i].x_pos = this.x_pos + Math.random()*this.width;
				material[i].time = 0;
			}
			material[i].draw();
		}
	}
}
function Material (x_pos) {
	this.x_pos = x_pos;
	this.y_pos = 500;
	this.width = 50;
	this.height = 1000;
	this.found = false;
	this.getting = false;
	this.time = 0;
	this.bubbles = new Array();
	for(var i=0; i<5; i++){
		this.bubbles[i] = new Bubbles(this.x_pos, 1000);
	}
}
Material.prototype = {
	draw: function () {
		context.save();
		for(var i=0; i<this.bubbles.length; i++){
			this.bubbles[i].draw(this.x_pos);
		}
		context.restore();
		if(player.isColliding(this.x_pos, this.y_pos, this.width, this.height)&&(!on_cutscene||this.getting)){
			if((pressed_control&&!on_cutscene)||(player.state == 'cutscene')&&!this.found) {
				this.getting = true
				player.cutscene_animation(16, 2, 3);
				player.y_pos += 100*dt;
				camera.y_pos += 100*dt;
				this.time = 0;
			}
			if(player.state=='finished'&&this.getting){
				player.state = 'idle';
				audioData[1].play();
				cutscene = new Cutscene([[player.x_pos+(player.width-canvas.width)/2, camera.y_pos]], [["¡Has encontrado un pedazo de tule en el fondo del lago!"]]);
				contador.add();
				this.found = true;	
			}
			if(this.getting&&cutscene.started&&!cutscene.finished){
				drawOnCanvas(imgData[19], 400, 200);
			}
			if(this.found&&cutscene.finished&&this.getting){
				this.time = 0;
				player.cutscene_animation(17, 2, 3);
				player.y_pos -= 100*dt;
				camera.y_pos -= 100*dt;
				if(player.state=='finished'){
					player.state = 'idle';
					this.time = 5;
					this.found = false;
					this.getting = false;
				}
			}
		}
	}
};
function Bubbles (init_x, init_y) {
	this.init_x = init_x;
	this.init_y = init_y;
	this.x_pos;
	this.y_pos;
	this.y_speed;
	this.y_accel;
	this.x_disp;
	this.x_speed;
	this.alpha =0;
}
Bubbles.prototype = {
	init: function () {
		this.x_pos = this.init_x + Math.floor(Math.random()*25);
		this.y_pos = this.init_y;
		this.y_speed = 0;
		this.y_accel = Math.random()*70 + 150;
		this.x_speed = 0.15;
		this.x_disp = 0;
		this.alpha = 1;
	},
	draw: function (init_x) {
		if(this.alpha<=0){
			this.init_x = init_x;
			this.init();
		}
		this.x_disp = Math.sin(Math.PI*this.x_speed)*6;
		this.x_speed+=8*dt;
		if(this.x_speed>2)
			this.x_speed-=2;
		this.y_speed+=this.y_accel*dt;
		this.y_pos-=this.y_speed*dt;
		context.globalAlpha = this.alpha;
		drawOnCanvas(imgData[12], this.x_pos+this.x_disp-camera.x_pos, this.y_pos-camera.y_pos);
		if(this.y_pos<=600)
			this.alpha-=0.2;
	}
};