/*
====================================
	Bibliohèques JS Antoine GIANNELLONI
	Copyright 2009
====================================
*/

(function() 
{
	function $( id ) 
	{
		return document.getElementById( id );
	}

	function setStyleDisplay( id, status ) 
	{
		$(id).style.display = status;
	}

	
	//---------------------
	//		GOTOP : Remonte en haut de page avec un effet d'acceleration
	//
	//	acceleration 	: vitesse du défilement
	//	time 			: temps d execution
	//---------------------
	function goTop( acceleration, time ) 
	{
		acceleration = acceleration || 0.1;
		time = time || 16;

		var dx = 0;
		var dy = 0;
		var bx = 0;
		var by = 0;
		var wx = 0;
		var wy = 0;

		if( document.documentElement ) 
		{
			dx = document.documentElement.scrollLeft || 0;
			dy = document.documentElement.scrollTop || 0;
		}
		if( document.body )
		{
			bx = document.body.scrollLeft || 0;
			by = document.body.scrollTop || 0;
		}
		var wx = window.scrollX || 0;
		var wy = window.scrollY || 0;

		var x = Math.max( wx, Math.max( bx, dx ));
		var y = Math.max( wy, Math.max( by, dy ));

		var speed = 1 + acceleration;
		window.scrollTo( Math.floor( x / speed ), Math.floor( y / speed ));
		if( x > 0 || y > 0 ) 
		{
			var invokeFunction = "SBJS.goTop(" + acceleration + ", " + time + ")"
			window.setTimeout( invokeFunction, time );
		}
	}
	
	
	//---------------------
	//	SCROLLBOX
	//
	//	div			: boite à fermer
	//	acceleration 	: vitesse du défilement
	//	time 			: temps d execution
	//---------------------
	function scrollBox( div, acceleration, time ) 
	{
		acceleration = acceleration || 0;
		time = time || 16;
		
		var i = $(div).innerHTML;
		if( i != "" ) $(div).innerHTML = "";
		
		var h = parseInt( document.getElementById( div ).style.height );
		acceleration += 0.8;
		
		$(div).style.height = h;
		
		h -= acceleration;
		if( h <= 0 ) h = 0;
		
		if( h != 0 ) 
		{
			h += "px";
			$(div).style.height = h;

			var invokeFunction = "AGJS.scrollBox('" + div + "', " + acceleration + ", " + time + ")"
			window.setTimeout( invokeFunction, time );
		}
		else
			$(div).style.display = 'none';
	}


	//---------------------
	//		SWITCHTAB : Onglets dynamiques
	//
	//	showPanels 	: ID du panneau à montrer
	//	hidePanels 	: ID du panneau à cacher
	//	activeTab	: ID du lien du panneau affiché
	//	activeClass : Classe du lien du panneau affiché
	//	fadeTab		: ID du lien du panneau caché
	//	fadeClass	: Classe du lien du panneau caché
	//---------------------
	function switchTab( showPanels, hidePanels, activeTab, activeClass, fadeTab, fadeClass )
	{
		$( activeTab ).className = activeClass;
		
		var lien, lienList;
		lienList = fadeTab.split(',');
		for( var i = 0; i < lienList.length; i++ )
		{
			var lien = lienList[i];
			if ( $( lien )) 
			{
				$( lien ).className = fadeClass;
			}
		}

		var panel, panelList;
		panelList = showPanels.split(',');
		for( var i = 0; i < panelList.length; i++ )
		{
			var panel = panelList[i];
			if ( $( panel )) 
			{
				setStyleDisplay( panel, 'block' );
			}
		}
		
		panelList = hidePanels.split(',');
		for( var i = 0; i < panelList.length; i++ )
		{
			panel = panelList[i];
			if ( $( panel ))
			{
				setStyleDisplay( panel, 'none' );
			}
		}
	}

	window['AGJS'] = {};
	window['AGJS']['$'] = $;
	window['AGJS']['setStyleDisplay'] = setStyleDisplay;
	window['AGJS']['goTop'] = goTop;
	window['AGJS']['scrollBox'] = scrollBox;
	window['AGJS']['switchTab'] = switchTab;

})();


//------------------------------------
//	CHANGEMENT D IMAGE
//------------------------------------
function switchImage( imageId, imageUrl, linkId, linkUrl, preview, title, alt )
{
	if( imageId && imageUrl )
	{
		var image = $( imageId );
		image.src = imageUrl;

		if( title )
		{
			image.title = title;
		}
		if( alt )
		{
			image.alt = alt;
		}
	}

	if( linkId && linkUrl )
	{
		var link = $( linkId );
		link.href = linkUrl;
	}
}
