/*
file name : scriptFenetres.js
Script  de gestion des fenetres sur le site gantis.fr
Tous droits réservés Alexandre Hocquard et Julien Sanchez- Merci de ne pas copier sans autorisation
Si vous souhaitez vous inspirer de notre code merci de nous envoyer un mail à mail@gantis.fr

Tout le code suivant est une création originale. Le but de gantis.fr est pédagogique. Notre volonté n'est donc pas de proposer un site disposant du plus de fonction possible, mais d'apprendre et maitriser leurs créations.
*/


////////////////////////////// CACHER AFFICHER ///////////////
function initialisationAffichageDesFenetres()
{
document.getElementById('fenetreVolanteResultat').style.visibility='hidden';
document.getElementById('puceDockfenetreVolanteResultat').style.backgroundImage = 'url("")';
document.getElementById('fenetreVolanteSnake').style.visibility='hidden';
document.getElementById('puceDockfenetreVolanteSnake').style.backgroundImage = 'url("")';
document.getElementById('fenetreVolantePong').style.visibility='hidden';
document.getElementById('puceDockfenetreVolantePong').style.backgroundImage = 'url("")';
document.getElementById('fenetreVolanteChat').style.visibility='visible';
document.getElementById('notePong').style.visibility='hidden';
document.getElementById('noteSnake').style.visibility='hidden';
document.getElementById('note').style.visibility='visible';
//document.getElementById('pageInfo').style.visibility='hidden'
return;
}
function afficherCacher(div,focusControl) // fonction caché/visible fenetreVolante
{
	if(document.getElementById(div).style.visibility == "visible")
	{
		document.getElementById(div).style.visibility = "hidden";
		document.getElementById("puceDock"+div+"").style.backgroundImage = 'url("")';
	}
	else if(document.getElementById(div).style.visibility == "hidden") // on évite le simple else pour une éventuelle réutilisabilité du code
	{
		document.getElementById(div).style.visibility = "visible";
		if(div == "fenetreVolanteChat" || div == "fenetreVolanteResultat" || div == "fenetreVolantePong" || div == "fenetreVolanteSnake")
		{
		document.getElementById("puceDock"+div+"").style.backgroundImage = 'url("images/indicateurDock.png")';
		}
		if( (focusControl != '') && (focusControl != null) )// donne focus sur Pong par exemple pour jouer
		{
			document.getElementById(focusControl).focus();
		}
	}
	return 0;
}
/////////////////////////// FIN CACHE AFFICHER ///////////////


/////////////////////////// DEPLACEMENT FENETRE ////////////////////////
document.onmouseup = stopDeplacementFenetre;
document.onmousemove = getMousePos;
var posX = 0;
var posY =0;
var deltaX = 0;
var deltaY = 0;
var fenetreVolante =""; /* variable qui a prend pour valeur la fenetre déplacée. Quand on a cliqué sur la fenetre, elle est remplie, quand on déclik, elle s'arrete */

/* position souris + position fenetre */
function getMousePos(e)
{
	if (document.all) // si internet explorer
	{
		posX=event.offsetX;
		posY=event.offsetY;	
	}	
	else
	{
		posX=e.pageX;
		posY=e.pageY;
	}
	
	
	if (fenetreVolante != "" )
	{
		var deplacementX = posX - deltaX; // cf fonction du bas pour voir à quoi ca correspond
		var deplacementY = posY - deltaY;
		if(deplacementX<0) /* pour bloquer le positionnement a droite */
		{
			deplacementX = 2;
		}
		if(deplacementY<24) /* mm chose a gauche */
		{
			deplacementY=23;
		}
		fenetreVolante.style.left = deplacementX  + "px";
		fenetreVolante.style.top =  deplacementY + "px";
	}
	return false;
}


function startDeplacementFenetre(fenetre) /* si on clik sans décliquer sur la div fenetre, alors on initialise le déplacement grâce à une variable */
{
	premierPlan(fenetre);
	fenetreActive = document.getElementById(fenetre);
	if(fenetre == "note" || fenetre == "notePong" || fenetre == "noteSnake")
	{
		document.getElementById(fenetre).style.opacity = "0.7";
	}
	if ((navigateur  != "msie") && (navigateur != "inconnu"))
	{
		deltaX = posX - fenetreActive.offsetLeft; /* position de souris au moment du clik - distance entre souris et bord horizontal de la fenetre */
		deltaY = posY - fenetreActive.offsetTop;
		fenetreVolante = fenetreActive;
	}
	return false;
}

function stopDeplacementFenetre()  /* lors du déclik, on met "rien" dans la variable, pu rien ne peut bougr sur la page */
{
	//On remet le valeur d'opacité à 1
	document.getElementById("note").style.opacity = "1";
	document.getElementById("notePong").style.opacity = "1";
	document.getElementById("noteSnake").style.opacity = "1";
	fenetreVolante="";	
	return false;
}

function curseur()
{
	if(navigateur == ("msie" || "inconnu"))
	{
		document.getElementById('iconDD').style.cursor = "default";
		document.getElementById('note').style.cursor = "default";
		document.getElementById('menuFenetre1').style.cursor = "default";
	}
return false;
}
curseur();
////////////////////// FIN DEPLACEMENT FENETRE //////////////////////

/////////////// GESTION Z INDEX FENETRE VOLANTE /////////////////////
	var indexMax = 70; // z-index maximum des fenetre volantes
	var calquesDeplacement = new Array();
	var compteurCalques=0
	var compteurCalquesBon=0;
	// récupération des divs dans des objets
	var calques = document.getElementsByTagName('div');
while (compteurCalques<calques.length)
{
	if ((calques[compteurCalques].className == 'fenetreVolante') || (calques[compteurCalques].className == 'note') )
	{ 
		// si la div a pour classe… alors on la met dans un tableau
		calquesDeplacement[compteurCalquesBon] = calques[compteurCalques];
		calquesDeplacement[compteurCalquesBon].style.zIndex = indexMax - compteurCalquesBon; // on met un z-index à la div
		compteurCalquesBon++;
	}
	compteurCalques++;
}

function premierPlan(div)
{
	
	var sauvegarde;
	var memoire = calquesDeplacement[0];
	var memoire2 = calquesDeplacement[1];
	for(var i=0 ; i<calquesDeplacement.length; i++) // on parcour les classes fenetreVolante et note
	{
		if(calquesDeplacement[i].id == div) // si c'est la div cliqué
		{
			sauvegarde = calquesDeplacement[i]; // on sauvegarde l'ojbet correspondant à la div
			for(var k=0 ; k<i ; k++)
			{
				calquesDeplacement[k+1] = memoire; // la 1e div en z-index devient la 2e
				memoire= memoire2;
				memoire2 = calquesDeplacement[k+2]; // on enregistre avec un coup d'avance
				calquesDeplacement[k+1].style.zIndex = indexMax-k-1;
			}
			calquesDeplacement[0]= sauvegarde;
			calquesDeplacement[0].style.zIndex = indexMax;
		}
	}
	return;
}
///////////////FIN GESTION Z INDEX FENETRE VOLANTE ///////////////////

