//\/////
//\  defilbandeau.js 
//\  
//\  Ce fichier contient les elements javascript necessaires a la gestion
//\  des bandeaux d'onglets et de menus du frameWork AxisPHP.
//\  Il permet le defilement sur une ligne d'une longue serie de menus
//\  (APL)
//   Revision: 1.0                Date: 2003/10/03
//\/////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// PARAMETRAGE
pWidthBtn = 11;  			//Largeur des boutons gauche/droite
pDelayMove = 20; 			//Delai de defilement du menu en millisecondes
pPxMove = 8;     			//Nb de pixels de defilement par intervalles de pDelaymove ms
pPxMoveQuick = 30; 			//Nb de pixels de defilement par intervalles de pDelaymove ms pour defilement rapide lors du clic sur les boutons
pWidthBandeauMenu = 970; 	//Largeur du bandeau accueillant les sous menus
//
pNameDivArrowLeft = 'divArrowLeft';		//L'id du div accueillant la fleche d'action defilement gauche
pNameDivArrowRight = 'divArrowRight';	//L'id du div accueillant la fleche d'action defilement droite
pNameDivMenuBar = 'divMenu';			//L'id du div accueillant la zone de contenu a faire defiler
//
// REMARQUES sur les classes de style CSS devant etre definies :
//	- la classe pNameDivArrowLeft doit etre du style : 
//		#[pNameDivArrowLeft]    {	position:absolute;
//									z-index:12;
//									width:[pWidthBtn]px;
//									height:26px;
//									left:0px;
//									top:0px;
//									visibility:hidden;
//									display:block;} 
//	- la classe pNameDivArrowRight doit etre du style : 
//		#[pNameDivArrowRight]   {	position:absolute;
//									z-index:12;
//									left:[pWidthBandeauMenu-pWidthBtn]px;
//									width:[pWidthBtn]px;
//									height:26px;
//									top:0px;
//									visibility:hidden;
//									display:block;}
//	- la classe pNameDivMenuBar doit etre du style : 
//		#[pNameDivMenuBar]    {		position:absolute;
//									z-index:11;
//									left:0px;
//									height:26px;
//									visibility:inherit;}
//  IMPORTANT 
//	- le style du div contenant le tout devra etre contenir les elements suivant : 
//		#[nom_style_di_conteneur]    {	z-index:10;
//										width:[une_grande_valeur_superieure_au_max_de_contenu_possible]px;	
//										clip:rect(0px [pWidthBandeauMenu]px auto 0px);
//										visibility:visible;
//										overflow:hidden;} 
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FONCTIONS 
var vTimer = 0;
var pPxMoveOriginal = pPxMove;
var barreMenus;

// Fonction appelee pour le defilement vers la gauche
function moveToLeft(){
	if (barreMenus.left<0){
		document.getElementById(pNameDivArrowRight).style.visibility = 'visible';
		barreMenus.moveOnX(pPxMove);
		vTimer = setTimeout("moveToLeft()",pDelayMove);
	}
	else{
		document.getElementById(pNameDivArrowLeft).style.visibility = 'hidden';
	}
}

// Fonction appelee pour le defilement vers la droite
function moveToRight(){
	if (barreMenus.left>-(barreMenus.scrollWidth-pWidthBandeauMenu)){
		document.getElementById(pNameDivArrowLeft).style.visibility = 'visible';
		barreMenus.moveOnX(-pPxMove);
		vTimer = setTimeout("moveToRight()",pDelayMove);
	}
	else{
		document.getElementById(pNameDivArrowRight).style.visibility = 'hidden';
	}
}

// Fonction appelee pour stopper le defilement
function stopMove(){
	clearTimeout(vTimer);
	pPxMove = pPxMoveOriginal;
}

// Constructeur d'objet Js
function constructObjetJs(obj){
	this.elm = document.getElementById(obj);
	this.scrollWidth =  this.elm.offsetWidth;
	this.left =  this.elm.offsetLeft;
	this.moveOnX = b_moveOnX;
	return this;
}

// Fonction de deplacement d'un objet Js de x pixels
function b_moveOnX(x){
	this.left = this.left + x;
	this.elm.style.left = this.left+'px';
}

// Fonction d'initialisation, qui doit etre appelee au chargement de la page
function initBarreMenus(){
	if(document.getElementById(pNameDivMenuBar))
	{
		barreMenus = new constructObjetJs(pNameDivMenuBar);
		// on initailise l'etat des fleches (visibles ou cachees)
		if (barreMenus.left<0){
			document.getElementById(pNameDivArrowLeft).style.visibility = 'visible';
		}
		if (barreMenus.left>-(barreMenus.scrollWidth-pWidthBandeauMenu)){
			document.getElementById(pNameDivArrowRight).style.visibility = 'visible';
		}
	}
}

// Initialise l'objet Js et l'etat des fleches d'action en fin de chargement de page
function superLoadEvents()
{
	initBarreMenus();
	return false;
}
window.onload = superLoadEvents;

