/*
  ###############################
  #                             #
  #       FAUSSE POP UP         #
  #                             #
  ###############################
*/

//########### AFFICHAGE/MASQUAGE DES FAUSSE POP UPS
function show_popup(objDiv) {//fonction qui affiche la fausse pop up
		
	//var objDiv = "page_action";
	document.getElementById(objDiv).style.visibility = "visible";

}
	
	
function hide_popup(objDiv) { // fonction qui masque la fausse pop up
		
		document.getElementById(objDiv).style.visibility = "hidden";
}



//############### Fonctions de délai d'apparition de la popup	
function delai(fonction,temps){//permet de retarder le lancement d'une fonction

	activ_fonction = setTimeout(fonction,temps);

}

//############### FONCTIONS QUI GÈRENT LE DRAG N'DROP DES FAUSSES POP UP 

var X_OTHER	= 1;
var X_LEFT	= 2;
var X_RIGHT = 3;

var Y_OTHER	= 1;
var Y_UP		= 2;
var Y_DOWN	= 3;

var vgCurrentElement = null;
var vgCurrentPositionX = X_OTHER;
var vgCurrentPositionY = Y_OTHER;
	
var vgCurrentX 			= 0;
var vgCurrentY 			= 0;
var vgCurrentWidth 	= 0;
var vgCurrentHeight = 0;

var vgMouseX 			= 0;
var vgMouseY 			= 0;
var vgMouseDiffX 	= 0;
var vgMouseDiffY 	= 0;
var vgMouseDown 	= false;

var vgTimerMouse;
var vgTimerTime = 20;


//----------------------------//
function position(e)
{
	vgMouseX = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
	vgMouseY = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
}

//----------------------------//
function fnResizeDiv()
{
	if(vgCurrentElement!=null && vgCurrentElement!=undefined)
	{
		document.getElementById(vgCurrentElement).style.left = vgCurrentX;
		document.getElementById(vgCurrentElement).style.top = vgCurrentY;
		//######## Les 2 lignes suivantes permettent le redimensionnement de la fenêtre quand on clique sur la bordure
		//document.getElementById(vgCurrentElement).style.width = vgCurrentWidth;
		//document.getElementById(vgCurrentElement).style.height = vgCurrentHeight;
	}
}

//----------------------------//
function fnOnMouseDown() 
{ 
	vgMouseDown = true;
	
	if(vgCurrentElement!=null && vgCurrentElement!=undefined)
	{
		//Init of size
		vgCurrentX 				= document.getElementById(vgCurrentElement).offsetLeft;
		vgCurrentY 				= document.getElementById(vgCurrentElement).offsetTop;
		vgCurrentWidth 		= document.getElementById(vgCurrentElement).offsetWidth;
		vgCurrentHeight 	= document.getElementById(vgCurrentElement).offsetHeight;
	
		//Init of distance
		vgMouseDiffX = vgMouseX-vgCurrentX;
		vgMouseDiffY = vgMouseY-vgCurrentY;
		
		//Init of position
		vgLargeurRedim = 5; //paramètre définissant la largeur de la zone permettant le clic de redimensionnement 
		
		if(vgMouseDiffX < vgLargeurRedim || (vgCurrentWidth-vgMouseDiffX) < vgLargeurRedim)
		{
			if(vgMouseDiffX < vgCurrentWidth/2)
				vgCurrentPositionX = X_LEFT;
			else
				vgCurrentPositionX = X_RIGHT;
		}
		else
			vgCurrentPositionX = X_OTHER;
			
		
		if(vgMouseDiffY < vgLargeurRedim || (vgCurrentHeight-vgMouseDiffY) < vgLargeurRedim)
		{
			if(vgMouseDiffY > vgCurrentHeight/2)
				vgCurrentPositionY = Y_DOWN;
			else
				vgCurrentPositionY = Y_UP;
		}
		else
			vgCurrentPositionY = Y_OTHER;
			
		
		vgTimerMouse = setInterval("fnOnMouseMove();", vgTimerTime);
	}
}

function fnOnMouseUp()
{ //fonction ?initialiser sur le body onmouseup
	vgMouseDown = false;
	clearInterval(vgTimerMouse);
}

function fnOnMouseMove()
{
	if(vgMouseDown && vgCurrentElement!=null && vgCurrentElement!=undefined)
	{
		switch(vgCurrentPositionX)
		{
			case X_LEFT:	vgCurrentWidth += vgCurrentX-vgMouseX;
										if(vgCurrentWidth<0)
											vgCurrentWidth = 0;
										else
											vgCurrentX = vgMouseX;
										break;
			case X_RIGHT:	vgCurrentWidth = vgMouseX-vgCurrentX;
										if(vgCurrentWidth<0)
											vgCurrentWidth = 0;
										break;
			default: break;
		}
		switch(vgCurrentPositionY)
		{
			case Y_UP:		vgCurrentHeight += vgCurrentY-vgMouseY;
										if(vgCurrentHeight<0)
											vgCurrentHeight = 0;
										else
											vgCurrentY = vgMouseY;
										break;
			case Y_DOWN:	vgCurrentHeight = vgMouseY-vgCurrentY;
										if(vgCurrentHeight<0)
											vgCurrentHeight = 0;
										break;
			default: break;
		}
									
		if(vgCurrentPositionX==X_OTHER && vgCurrentPositionY==Y_OTHER)
		{
			vgCurrentX = vgMouseX-vgMouseDiffX;
			vgCurrentY = vgMouseY-vgMouseDiffY;
		}
		
		
		
		fnResizeDiv();
	}
}

function fnOnMouseOver(sSelectedElementName)
{// fonction qui doit être appliquée ?l'élément sur lequel on doit cliquer pour déplacer (DIV, cellule de tableau...) sur un evénement onmouseover, et sur un événement onmouseout(sans paramètre)
	if(!vgMouseDown)
	{
		if(sSelectedElementName==null && sSelectedElementName!="undefined")
		{
			vgCurrentElement = null;
		}
		else
		{
			vgCurrentElement = sSelectedElementName;
		}
	}
}


//----------------------------//
function fnOnLoad()
{//fonction ?initialiser sur le body onload
	if(navigator.appName.substring(0,3) == "Net")
		document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove = position;
	
	//fnResizeDiv();
}

function init_popup(objDiv)
{//fonction ?initialiser sur le body onload
	//alert("haha");
	vTimeDelai = 1000 ; //temps de délai avant l'ouverture en microsecondes
	delai('show_popup(\''+ objDiv +'\')', vTimeDelai);
	fnOnLoad();

}
