// -------------------- Fonctions de l'interface --------------------


var menuActuel = "divInputRapide"
var dernierMenu = ""

var pleinEcran = false
var maximise = true
var tailleFenetreX = window.innerWidth 
var tailleFenetreY = window.innerHeight 
var AncienneMethodeAffichage = 0

// Cette fonction permet d'afficher le menu désiré.
// Il faut lui donner l'id du menu à afficher.
function afficherMenu(id){
	if (menuActuel == id){
		cacherMenu()
		dernierMenu = false;
	}
	else {
		if (menuActuel != ""){
			dernierMenu = menuActuel;
			cacherMenu()
		}
		menuActuel = id
		document.getElementById(id).style.display = "block"
		message.supprimer();
	}
}

// Permet de cacher le menu actuellement affiché
function cacherMenu(){
	if(menuActuel != ""){
		document.getElementById(menuActuel).style.display = "none"
		menuActuel = ""
	}
}

// Affiche un message d'erreur
function afficherErreur(message){
	document.getElementById("spanErreurFct").innerHTML = message;
	afficherMenu("erreurFct");
}

// Messages d'info

var message = {
	liste : [],
	ajouter : function(x, y, contenu){
		var newDiv = document.createElement("div");
		newDiv.style.left = x + "px";
		newDiv.style.top = y + "px";
		
		var textDiv = document.createElement("span");
		textDiv.innerHTML = contenu;
		newDiv.appendChild(textDiv);
		
		document.getElementById("divMessages").appendChild(newDiv);
	},
	supprimer : function(){
		var div = document.getElementById("divMessages");
		div.innerHTML = "";
	}
};


// ---- Minimiser ou Maximiser le widget (pour Uniboard) ----
function miniMax(){
	if (maximise){
		maximise = false
		document.getElementById('affichage').style.display = "none"
		document.getElementById('gauche').style.display = "none"
		document.getElementById('miniMax').innerHTML = "+"
		window.resizeTo(400,50)
		AncienneMethodeAffichage = document.getElementById("selectMethodeAffichage").selectedIndex
		document.getElementById("selectMethodeAffichage").selectedIndex = "3"
	}
	else{
		maximise = true
		document.getElementById('affichage').style.display = "block"
		document.getElementById('gauche').style.display = "block"
		document.getElementById('miniMax').innerHTML = "-"
		window.resizeTo(tailleFenetreX,tailleFenetreY)
		document.getElementById("selectMethodeAffichage").selectedIndex = AncienneMethodeAffichage
	}
}

// Affiche le menu +
function menuFonctions(){
	if(fonction3D){
		afficherMenu('menuHistorique');
	}
	else{
		afficherMenu('menuFonctions');
		editeur.editer(0);
	}
}

// Action des petits bouton + et - dans les options
function boutonPlus(id, nombre){
	var element = document.getElementById(id)
	var valeurActuelle = Number(element.value)
	element.value = valeurActuelle + nombre
}
function boutonMoins(id, nombre){
	var element = document.getElementById(id)
	var valeurActuelle = Number(element.value)
	if(valeurActuelle>=nombre*2){
		element.value = valeurActuelle - nombre
	}
}

// Changer de thème
function changerTheme(theme){
	var positions = [
		"top-left",
		"top",
		"top-right",
		"right",
		"bottom-right",
		"bottom",
		"bottom-left",
		"left",
		"center"
	];
	for(var i=0; i<positions.length; i++){
		var pos = positions[i];
		var id = "background-" + pos;
		var path = "Images/" + theme + "/" + pos + ".png";
		document.getElementById(id).style.backgroundImage = "url("+path+")";
	}
// 	switch(theme){
// 		case "white":
// 			document.body.style.backgroundColor = "black";
// 			var couleurEchelle = "rgba(0,0,0,0.8)"
// 			var couleurGrille = "rgba(255,255,255,0.2)"
// 			var couleurAxes = "rgba(0,0,0,0.5)"
// 			break;
// 		default:
// 			document.body.style.backgroundColor = "transparent";
// 			var couleurEchelle = "rgba(255,255,255,0.8)"
// 			var couleurGrille = "rgba(255,255,255,0.1)"
// 			var couleurAxes = "rgba(0,0,0,0.5)"
// 			break;
// 	}
	saveOptions();
}

// Affiche un message d'erreur
function error(err){
	alert(" Erreur sur la page...\n\n Description: " + err.description + "\n\n Cliquez sur OK pour continuer.\n\n")
}


function agrandirAffichage(){
	if(pleinEcran){
		pleinEcran = false;
		document.getElementById('background-center').style.paddingTop = "30px";
		document.getElementById('ongletsHaut').style.display = "block";
		document.getElementById('onglet3D').style.display = "block";
		document.getElementById('boutonSaveGraph').style.display = "inline-block";
		if(window.sankore || window.uniboard){
			document.getElementById('zoneJoystick').style.display = "block";
			document.getElementById('zoomButtons').style.display = "block";
			document.getElementById('toolButtons').style.display = "block";
		}
	}
	else{
		pleinEcran = true;
		document.getElementById('background-center').style.paddingTop = "0px";
		document.getElementById('ongletsHaut').style.display = "none";
		document.getElementById('onglet3D').style.display = "none";
		document.getElementById('boutonSaveGraph').style.display = "none";
		if(window.sankore || window.uniboard){
			document.getElementById('zoneJoystick').style.display = "none";
			document.getElementById('zoomButtons').style.display = "none";
			document.getElementById('toolButtons').style.display = "none";
		}
	}
	widget.resize();
}

// Ferme le widget
function close(){
	window.close()
}

// Actions de mise à jour du widget
function miseAjour(){
	var txtHTML = "";
	document.getElementById("thisVersion").innerHTML = '<object type="text/html" data="version.html"></object>';
	for(var i=0; i<listeServeurs.length; i++){
		if(i != 0){
			txtHTML += '<br/>';
		}
		txtHTML += '<object type="text/html" data="'+listeServeurs[i]+'version.html"></object>';
// 		txtHTML += '<input type="button" value="utiliser" onclick="document.location.href = \''+listeServeurs[i]+'Grapheur.html\'"/>';
// 		txtHTML += '<input type="button" value="télécharger" onclick="window.open(\''+listeServeurs[i]+'../GraphMe.zip\', \'_blank\')"/>';
	}
	document.getElementById("newVersion").innerHTML = txtHTML;
	
	afficherMenu("mAj");
}

function checkboxMaJ(){
	if(versionOnline()){
		afficherMenu('erreurMaJ')
		document.getElementById("checkMaJ").checked = false
	}
	else{
		if(document.getElementById("checkMaJ").checked){
			loadOptions()
			document.getElementById("checkMaJ").checked = true
			saveOptions()
		}
		else{
			loadOptions()
			document.getElementById("checkMaJ").checked = false
			saveOptions()
		}
	}
}

function majAuto(){
// 	var audio = new Audio();
// 	audio.src = "version.ogg";
// 	audio.load();
// 	setTimeout(function(){
// 	window.console.log(" "+audio.duration);
// 	}, 0)
	if(versionOnline()){
		document.getElementById("cacheMaJ").style.display = "block";
		document.getElementById("checkMaJ").disabled = true;
		document.getElementById("checkMaJ").checked = true;
	}
	else{
		if(document.getElementById("checkMaJ").checked){
			afficherMenu('demandeMaJ');
		}
	}
}
function majAccept(){
// 	document.location.href='http://gyb.educanet2.ch/tm-widgets/yannick/GraphMe.wgt/Grapheur.html';
	for(var i=0; i<listeServeurs.length; i++){
		setTimeout(majServeur, i*500, listeServeurs[i]);
	}
}

function majServeur(serveur){
	var img = new Image();
	img.onload = function(){
		document.location.href = serveur + "Grapheur.html";
	};
	img.src = serveur + "icon.png";
}

// Retourne true si le widget est utilisé depuis un des sites en ligne
function versionOnline(){
	for(var i=0; i<listeServeurs.length; i++){
		if(document.location.href == listeServeurs[i]+"Grapheur.html"){
			return true;
		}
	}
	return false;
}


// Afficher une page web à la place dans la zone d'affichage
function navigateur(lien){
// 	cacherMenu()
// 	document.getElementById("affichage").innerHTML = '<object type="text/html" data="'+lien+'" style="width:100%;height:100%;"></object>'
	window.open(lien, "_blank")
}