/**********************************************
Gestionnaire de popup (DOM)
koala64
**********************************************/


// Raccourci pour le script

var d = document;

// Creation d'un objet

var o = new Object;

// Creation d'une variable globale

var oNewWin = null;

// Proprietes Link de l'objet

o.Link =
{

	// Gestionnaire de l'evenement onclick pour chaque lien du document

	ClickHandler: function()
	{		

		// On recupere l'ensemble des liens dans un tableau puis
		// on parcourt le tableau. Si le lien possede une classe 'popup',
		// on lance la fonction popup.

		var oLink = d.getElementsByTagName( 'body' )[0].getElementsByTagName( 'a' );
		for( var a = 0 ; a < oLink.length ; a++ )
			if( oLink[a].className == 'popup' )
				oLink[a].onclick = o.Popup.__Open;

	},

	// Creation d'un lien dans la page principale pour supprimer la popup

	Destroy: function()
	{

		// On cree un paragraphe contenant un lien en lui donnant un identifiant,
		// ce qui permet de le manipuler via css...

		var oBody = d.getElementsByTagName( 'body' )[0];
		var oP = d.createElement( 'p' );
		oP.setAttribute( 'id' , 'popup' );
		var oLink = d.createElement( 'a' );
		oLink.setAttribute( 'href' , '#' );
		var oTextLink = d.createTextNode( '' );
		oTextLink.data = '';
		oBody.appendChild( oP );
		oP.appendChild( oLink );
		oLink.appendChild( oTextLink );

		// On affecte au lien la methode de fermeture de popup.

		oLink.onclick = o.Popup.__Close;

	}

}

// Proprietes Popup de l'objet

o.Popup =
{

	// Methode d'ouverture de la popup

	__Open: function()
	{

		// Si la popup n'existe pas, on en cree une avec le lien concerne puis
		// on annule l'activation du lien dans la fenetre principale.

		if( !oNewWin || oNewWin.closed )
		{
			oNewWin = window.open( this.href , '' , 'top=' + ((screen.height/2)-300) + ' , left=' + ((screen.width/2)-100) + ' , width=650 , height=700 , scrollbars=yes' );
			return false;
		}
		
		// Si la popup existe et qu'on clique sur un autre lien possedant une classe 'popup',
		// on passe l'url a la popup, on lui redonne le focus puis on annule l'activation du
		// lien dans la fenetre principale.

		else if( oNewWin && this.className == 'popup' )
		{
			oNewWin.location.href = this.href;
			oNewWin.focus();
			return false;
		}
		
		// Pour les autres cas, on active le lien dans la fenêtre principale.

		else
		{
			return true;
		}

	},
	
	// Methode de fermeture de la popup.

	__Close: function()
	{
		if( oNewWin )
		{
			oNewWin.close();
			oNewWin = null;
			return false;
		}
	}

}

// Proprietes Script de l'objet

o.Script =
{

	// Initialisation de l'objet

	Init: function()
	{
		o.Link.ClickHandler();
		o.Link.Destroy();
	}

}

// Chargement de l'objet au lancement de la page.

window.onload = o.Script.Init;