/**
 * Javascript de gestion des références
 *
 * @author Eric Jeker - Virtua SA <eric.jeker@virtua.ch>
 * @copyright Copyright © Virtua web solutions
 * @name: $ source: reference.js $
 * @version $ revision: 1.0 $ $ date: 6 nov. 06 $ $ author: eric $
**/

var Reference = {
	closePopup : function(custId)	{
		obj = getById('popup_' + custId) ;
		
		obj.style['visibility'] = 'hidden' ;
	},
	
	openPopup : function(custId)	{
		obj = getById('popup_' + custId) ;
		
		// la taille de la popup
		objWidth 	= parseInt(obj.style['width']) ;
		objHeight 	= parseInt(obj.style['height']) ;

		offsetX = 0 ;
		offsetY = -(objHeight / 2) ;

		// on récupère la position de la souris
		mousePosX = Mouse.posX ;
		mousePosY = Mouse.posY ;
		
		// on calcule la position de la fenêtre
		if (typeof( window.innerWidth ) == 'number')	{
			// la taille de la fenêtre
			clientWidth = window.innerWidth ;
			clientHeight = window.innerHeight ;
			// le scrolling
			scrollX = window.pageXOffset ;
			scrollY = window.pageYOffset ;
		} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ))	{
			//IE 6+ in 'standards compliant mode'
		    clientWidth = document.documentElement.clientWidth ;
		    clientHeight = document.documentElement.clientHeight ;
			// le scrolling
			scrollX = document.documentElement.scrollLeft ;
			scrollY = document.documentElement.scrollTop ;
    	} else	{
		    //IE 4 compatible
		    clientWidth = document.body.clientWidth ;
		    clientHeight = document.body.clientHeight ;
			// le scrolling
			scrollX = document.body.scrollLeft ;
			scrollY = document.body.scrollTop ;
		}
		
		// si la fenêtre dépasse en bas, on va l'afficher au dessus
		if (mousePosY - scrollY + objHeight + offsetY > clientHeight)	{
//			offsetY -= mousePosY - scrollY - objHeight + (clientHeight - mousePosY - scrollY) ;
		}
		
		// si la fenêtre dépasse à droite, on va l'afficher à gauche
		if (mousePosX - scrollX + objWidth + offsetX > clientWidth)	{
			offsetX -= objWidth * 2 ;
		}
		
		//alert ('mouse : ' + mousePosY + ' - scroll : ' + scrollY + ' - height : ' + clientHeight) ;
		//alert (mousePosY - scrollY + objHeight + " > " + clientHeight) ;
		
		// on repositionne la popup
		obj.style.top  = (Mouse.posY + offsetY) + 'px';
		obj.style.left = (Mouse.posX + offsetX) + 'px';

		// on affiche la popup
		obj.style['display'] = 'block' ;
		obj.style['visibility'] = 'visible' ;
	}

}
