extends Control

var nointernet = false
var llamadoelmodal = false
var listaNiveles = []
var btnNivel = preload("res://Objetos/curso_btn.tscn")

# Called when the node enters the scene tree for the first time.
func _ready():
	
	print("Home JSON:")
	print(Global.JsonGDD)
	
	Global.SelectedCurso = {}
	Global.nivel = {}
	Global.anafolders = []
	Global.selectedNivel = 0
	
	await $JsonRequest.request(Global.jsonUrl) #chequear internet
	
	setTitulo( (Global.JsonGDD).pantallainicial.titulo)
	setDescripcion( (Global.JsonGDD).pantallainicial.descripcion)
	
	listacursos()
	

func _on_button_pressed():
	print("btn pressed")
	$Button/Label.modulate = Color("#ffffff")
	get_tree().change_scene_to_file("res://Escenas/ListaGDD.tscn")

func _on_button_2_pressed():
	Global.selectedPestanaEditable="presentaciones"
	get_tree().change_scene_to_file("res://Escenas/Editables2.tscn")

func _on_button_3_pressed():
	Global.selectedPestanaEditable="evaluaciones"
	get_tree().change_scene_to_file("res://Escenas/Editables2.tscn")

func _on_button_4_pressed():
	Global.selectedPestanaEditable="imprimibles"
	get_tree().change_scene_to_file("res://Escenas/Editables2.tscn")

func _on_button_mouse_entered():
	$Button/Label.modulate = Color("#ffffff")

func _on_button_mouse_exited():
	$Button/Label.modulate =  Color("#627986")


func _on_http_request_request_completed(result, response_code, headers, body):
	#print("requested")
	var prejson = body.get_string_from_utf8()
	var obtainedjson = JSON.parse_string(prejson)
	
	#print("Obtener Json:")
	#print(obtainedjson)
	if str(obtainedjson) != "<null>":
		#print("listo web")
		$InternetStatus.setInternetIcon(true)
		Global.online = true
		if(nointernet and not llamadoelmodal):
			#print("llamar al modal")
			nointernet = false
			llamadoelmodal = true
			$ModalNet.visible = true
	else:
		print("No hay internetus")
		Global.online = false
		nointernet = true
		$InternetStatus.setInternetIcon(false)
	
	$CheckInternetAgain.start()

func _on_check_internet_again_timeout():
	#print("revisar denuevo")
	await $JsonRequest.request(Global.jsonUrl) #chequear internet

func setTitulo(textotitulo):
	$superiorButtons.setTitulo(textotitulo)
	
func setDescripcion(parrafos):
	var textodescr = ""
	for parrafo in parrafos:
		textodescr += parrafo + " \n\n"
	
	textodescr = textodescr.substr(0, textodescr.length() - 3)
	
	$Texto/Descripcion.text = textodescr

#llenar cursos
func listacursos():
	for nivelnum in Global.JsonGDD.niveles.keys():
		listaNiveles.append(Global.JsonGDD.niveles[nivelnum])
	
	#print(Global.JsonGDD)
	
	createNivelButtons()
	if Global.online:
		var evento =  {
			"name": "GDD",
				"params": {
				  "marco": "polaso"
				}
		  }

		print("hacer request analitic GDD")
		Global.testrquest("/GDD")
		#await Global.sendevent([evento]) #enviaranalitica
		#await Global.askanarenquest(Global.anaUrl+"/GDD",[],[]) #enviaranalitica
	print("Lista Niveles:")
	print(listaNiveles)

func createNivelButtons():
	print("Crear la lista de botones")
	
	for nivel in listaNiveles:
		print(nivel.nombre)
		print(nivel.sigla)
		
		var btnniv = btnNivel.instantiate()
		btnniv.setButtonText(nivel.nombre)
		btnniv.nivel = nivel
		
		var dir = DirAccess.open(Global.basedir + "/" + Global.JsonGDD.folders.documentos + "/" + nivel.sigla)
		print(dir)
		if dir.file_exists(nivel.sigla+"_portada." + nivel.extension_foto):
			print("existe imagen de portada")
			btnniv.setPortada(dir.get_current_dir()+"/"+nivel.sigla+"_portada." + nivel.extension_foto)
		
		$HBoxContainer.add_child(btnniv)
