// Alp-Software JS Framework (c) 2009 - v1.2 - 2009-03-18

var Timer_ID;
var Timer_Vitesse = "20";

var Queue_Working = false;
var tQueue=new Array();

var k = 0.1;
var f = 0.5;

function Animation_Speed(Vitesse)
{
	if (Vitesse == 1)
	{
		k = 0.3;
		f = 0.6;	
	} else {
		k = 0.1;
		f = 0.5;
	}
}

function DoDeplacer(Objet_ID, To)
{
	if (Queue_Working == false)
	{
		From = document.getElementById(Objet_ID).scrollLeft;
		To = document.getElementById(Objet_ID).scrollLeft + To;
	
		Valeur = From;
		vx = 0;
		if (From > To)
		{
			while (Valeur > To)
			{
				ax = k*(To - Valeur);
				vx += ax;
				vx *= f;
				Valeur += Math.floor(vx);
				
				if (Valeur > 0) { 
					AddQueue("SetScrollLeft('" + Objet_ID + "', " + Valeur + ")");
				} else {
					Valeur = To;
				}			
	
			}
		} else {
			while (Valeur < To)
			{
				ax = k*(To - Valeur);
				vx += ax;
				vx *= f;
				Valeur += Math.ceil(vx);
				
				AddQueue("SetScrollLeft('" + Objet_ID + "', " + Valeur + ")");
			}
		}
	
		AddQueue("SetScrollLeft('" + Objet_ID + "', " + To + ")");
	}
}

function DoExpand(Objet_ID, Left, Top, Width, Height)
{
	Left = parseInt(Left);
	Top = parseInt(Top);
	
	AddQueue("SetLeft('" + Objet_ID + "', " + Left + ")");
	AddQueue("SetTop('" + Objet_ID + "', " + Top + ")");
	
	Valeur_Width = document.getElementById(Objet_ID).offsetWidth;
	Valeur_Height = document.getElementById(Objet_ID).offsetHeight;

	//while ((Valeur_Left > Left) || (Valeur_Top > Top) || (Valeur_Width < Width) || (Valeur_Height < Height))
	while ((Valeur_Width < Width) || (Valeur_Height < Height))
	{
		if (Valeur_Width < Width)
		{
			ax = k*(Width - Valeur_Width);
			vx += ax;
			vx *= f;
			Valeur_Width += Math.ceil(vx);
			
			AddQueue("SetWidth('" + Objet_ID + "', " + Valeur_Width + ")");
		}
		
		if (Valeur_Height < Height)
		{
			ax = k*(Height - Valeur_Height);
			vx += ax;
			vx *= f;
			Valeur_Height += Math.ceil(vx);
			
			AddQueue("SetHeight('" + Objet_ID + "', " + Valeur_Height + ")");
		}
	}
	

	AddQueue("SetWidth('" + Objet_ID + "', " + Width + ")");
	AddQueue("SetHeight('" + Objet_ID + "', " + Height + ")");
}

function DoHeight(Objet_ID, To)
{
	From = document.getElementById(Objet_ID).offsetHeight;
	
	Valeur = From;
	vx = 0;
	if (From > To)
	{
		while (Valeur > To)
		{
			ax = k*(To - Valeur);
			vx += ax;
			vx *= f;
			Valeur += Math.floor(vx);

			if (Valeur > 0) { 
				AddQueue("SetHeight('" + Objet_ID + "', " + Valeur + ")"); 
			} else {
				Valeur = To;
			}

		}
	} else {
		while (Valeur < To)
		{
			ax = k*(To - Valeur);
			vx += ax;
			vx *= f;
			Valeur += Math.ceil(vx);

			AddQueue("SetHeight('" + Objet_ID + "', " + Valeur + ")");
		}
	}

	AddQueue("SetHeight('" + Objet_ID + "', " + To + ")");
}

function DoWidth(Objet_ID, To)
{
	From = document.getElementById(Objet_ID).offsetWidth;
		
	Valeur = From;
	vx = 0;
	if (From > To)
	{
		while (Valeur > To)
		{
			ax = k*(To - Valeur);
			vx += ax;
			vx *= f;
			Valeur += Math.floor(vx);
			
			if (Valeur > 0) { 
				AddQueue("SetWidth('" + Objet_ID + "', " + Valeur + ")");
			} else {
				Valeur = To;
			}			

		}
	} else {
		while (Valeur < To)
		{
			ax = k*(To - Valeur);
			vx += ax;
			vx *= f;
			Valeur += Math.ceil(vx);

			AddQueue("SetWidth('" + Objet_ID + "', " + Valeur + ")");
		}
	}

	AddQueue("SetWidth('" + Objet_ID + "', " + To + ")");
}


function DoBorder(Objet_ID, Cote, Largeur, Couleur)
{
	curLargeur = 0;
	
	if ((Cote == undefined) || (Cote == ''))
	{
		curLargeur = document.getElementById(Objet_ID).style.borderWidth;
	} else {
		curLargeur = eval('document.getElementById(Objet_ID).style.border' + Cote + 'Width');
	}
	
	curLargeur = parseInt(Number(curLargeur.split("px")[0]));
	
	if (curLargeur == undefined) { Taille = 0; }
	
	if (curLargeur > Largeur)
	{
		for (i=curLargeur; i >= Largeur; i--)
		{
			Temp = i+'';
			AddQueue("SetBorder('" + Objet_ID + "', '" + Cote + "', '" + Temp + "', '" + Couleur + "')");
		}
	} else {
		for (i=curLargeur; i <= Largeur; i++)
		{
			Temp = i+'';
			AddQueue("SetBorder('" + Objet_ID + "', '" + Cote + "', '" + Temp + "', '" + Couleur + "')");
		}
	}
}

function InitAccordeon(Objet_ID, Close)
{
	document.getElementById(Objet_ID).style.overflow = "hidden";
	document.getElementById(Objet_ID).alpHeight = document.getElementById(Objet_ID).offsetHeight; 

	if (Close == true)
	{
		SetObjVisible(document.getElementById(Objet_ID).parentNode, false);
		SetObjDisplay(document.getElementById(Objet_ID).parentNode.parentNode, false);
		
		SetHeight(Objet_ID,1);
	} else {
		SetHeight(Objet_ID, document.getElementById(Objet_ID).alpHeight);
	}
}

function DoAccordeon(Objet_ID)
{
	Animation_Speed(1);
	
	if (document.getElementById(Objet_ID).offsetHeight > 1)
	{
		From = document.getElementById(Objet_ID).alpHeight;
		To = 1;
	} else {
		From = 1;
		To = document.getElementById(Objet_ID).alpHeight;

		AddQueue("SetObjVisible(document.getElementById('" + Objet_ID + "').parentNode, true)");
		AddQueue("SetObjDisplay(document.getElementById('" + Objet_ID + "').parentNode.parentNode, true)");
	}
		
	Valeur = From;
	vx = 0;
	if (From > To)
	{
		while (Valeur > To)
		{
			ax = k*(To - Valeur);
			vx += ax;
			vx *= f;
			Valeur += Math.floor(vx);
			
			if (Valeur > 0) { 
				AddQueue("SetHeight('" + Objet_ID + "', " + Valeur + ")"); 
			} else {
				Valeur = To;
			}
		}
		
		AddQueue("SetObjVisible(document.getElementById('" + Objet_ID + "').parentNode, false)");
		AddQueue("SetObjDisplay(document.getElementById('" + Objet_ID + "').parentNode.parentNode, false)");
	} else {
		while (Valeur < To)
		{
			ax = k*(To - Valeur);
			vx += ax;
			vx *= f;
			Valeur += Math.ceil(vx);

			AddQueue("SetHeight('" + Objet_ID + "', " + Valeur + ")");
		}
	}

	AddQueue("SetHeight('" + Objet_ID + "', " + To + ")");
	
	Animation_Speed(0);
}

function DoAlpha(Objet_ID, From, To)
{
	Valeur = From;
	vx = 0;
	
	if (From > To)
	{
		while (Valeur > To)
		{
			ax = k*(To - Valeur);
			vx += ax;
			vx *= f;
			Valeur += vx;
			Valeur--;
			
			AddQueue("SetAlpha('" + Objet_ID + "', " + Valeur + ")");

		}
	} else {
		while (Valeur < To)
		{
			ax = k*(To - Valeur);
			vx += ax;
			vx *= f;
			Valeur += vx;
			Valeur++;
			
			AddQueue("SetAlpha('" + Objet_ID + "', " + Valeur + ")");
		}
	}

	AddQueue("SetAlpha('" + Objet_ID + "', " + To + ")");
}

function AddQueue(Evt)
{
	tQueue.push(Evt);
}

function DoQueue()
{
	if (Queue_Working == false)
	{
		Queue_Working = true;
		Timer_ID = setTimeout("ExecuteQueue()", Timer_Vitesse);
	}

}

function ExecuteQueue()
{
	if (tQueue.length > 0)
	{
		eval(tQueue[0]);
		tQueue.shift();	
		
		Timer_ID = setTimeout("ExecuteQueue()", Timer_Vitesse);
	} else {
		StopQueue();
	}
}

function StopQueue()
{
	Queue_Working = false;
	clearTimeout(Timer_ID);	
}
