// JavaScript Document//---------------------------------------------------------------

function getObject(objectId) {
    // cross-browser function to get an object'skill style object given its
    if(document.getElementById && document.getElementById(objectId)) 
	{
	// W3C DOM
//	alert("FF")
	return document.getElementById(objectId);
    } 
	else if (document.all && document.all(objectId)) 
	{
//	alert("IE")		
	// MSIE 4 DOM
	return document.all(objectId);
    } 
	else 
	{
	return false;
    }
} // getStyleOb

function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its
    if(document.getElementById && document.getElementById(objectId)) {
	// W3C DOM
	return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
	// MSIE 4 DOM
	return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
	// NN 4 DOM.. note: this won't find nested layers
	return document.layers[objectId];
    } else {
	return false;
    }
} // getStyleObject

var SlideCadre = function(container,nbDecalage,taille,nbCadre){

	this.container = container;
	this.div = getObject(this.container);
	this.boutonL = getObject("bl");
	this.boutonR = getObject("br");
	
	this.decalage = taille;//200
	this.totalCadre = nbCadre;//4 ou 7 ou 12 ...	
	this.nbSlide = nbDecalage;
	this.nbReste;
	this.slide = 10;//vitesse
	this.decalage_init = 0.00; 
	
	this.count = 3;//valeur en unité
	
	this.valueTodecalR;//decalage en pixel pa cycle
	this.valueTodecal;//decalage en pixel pa cycle	
	this.somme;//valeur en pixel

	this.init = function(){//initialisation des images
		var div = getObject(this.container);
		this.somme = 0;
		this.nbReste = this.totalCadre - this.nbSlide;
		if (this.nbReste> 2){
			this.valueTodecal = 3
			this.valueTodecalR = 0			
		}
		else{
			this.valueTodecal = this.nbReste
		}
		//hidde the R button
		if (this.nbReste == 0)
			this.boutonR.style.visibility = "hidden";	
		this.boutonL.style.visibility = "hidden";
		
	}


	this.slideLeft = function (){
		
//		alert(this.somme + "  " + this.count)
		
		if (this.count  < this.totalCadre ){//tester aussi si (this.totalCadre - 3)>0 sinon rien faire

			if (this.decalage_init <= (this.decalage * this.nbSlide)){
				//faire en sorte que l'angle varie de -1 a 1 pour un mouvement _-¨¨-_	(une periode)
				var alpha = (this.valueTodecal*this.decalage)*Math.cos((Math.PI/(this.decalage * 3*2))*this.decalage_init+(0.5*Math.PI))
				this.decalage_init += this.slide;//variable temps
				this.div.style.right = this.somme + Math.abs(Math.round(alpha)) + "px"
				var monContexte = this;
				setTimeout(function (){monContexte.slideLeft();},10)	
			}
			else{
				clearTimeout(this.slideLeft)
				this.boutonL.style.visibility = "visible";
				this.valueTodecalR = this.nbSlide
				this.decalage_init = 0.0
				
				this.somme += this.valueTodecal*this.decalage
				this.count += this.valueTodecal;
				this.nbReste -= this.valueTodecal				
						
				if (this.nbReste> 2)
					this.valueTodecal = this.nbSlide
				else{
					this.valueTodecal = this.nbReste
					if ((this.totalCadre-this.nbReste)-this.nbSlide> 2)
						this.valueTodecalR = this.nbSlide
					else
						this.valueTodecalR = (this.totalCadre-this.nbReste)-this.nbSlide;
				}
				//hidde the R button
				if (this.nbReste == 0)
					this.boutonR.style.visibility = "hidden";
//				alert(this.nbReste + " " + this.decalage + " " + this.valueTodecal + " " + this.totalCadre*this.decalage + " " + this.count)				
			}
		}
		
		return 0;
	}


	this.slideRight = function (){

//		alert(this.somme + "  " + this.count)
		
			if (this.count > 3){
				if (this.decalage_init < (this.decalage * this.nbSlide)){
				//alert(this.decalage_init)
				//faire en sorte que l'angle varie de -1 a 1 pour un mouvement _-¨¨-_
				var alpha = (this.valueTodecalR*this.decalage)*Math.cos((Math.PI/(this.decalage * 3*2))*this.decalage_init+(0.5*Math.PI))//
				var monContexte = this;
				this.decalage_init += this.slide;
//				alert(this.somme - Math.abs(Math.round(alpha)))
				this.div.style.right = this.somme - Math.abs(Math.round(alpha)) + "px" //parseInt(img.style.right)+ (1-alpha*10)					
				setTimeout(function (){monContexte.slideRight();},10)
					
				}	
			else{
				clearTimeout(this.slideRight)
				this.boutonR.style.visibility = "visible";				
				this.valueTodecal = this.nbSlide
				this.decalage_init = 0.0
				
				this.somme -= this.valueTodecalR*this.decalage				
				this.count -= this.valueTodecalR;
				this.nbReste += this.valueTodecalR								

				if ((this.totalCadre-this.nbReste)-this.nbSlide> 2)
					this.valueTodecalR = this.nbSlide
				else{
					this.valueTodecalR = (this.totalCadre-this.nbReste)-this.nbSlide;
					if (this.nbReste> 2)
						this.valueTodecal = this.nbSlide
					else
						this.valueTodecal = this.nbReste;
				}
				if ((this.totalCadre-this.nbReste-this.nbSlide) == 0)
					this.boutonL.style.visibility = "hidden";

//				alert((10-this.nbReste)-3 + " " + this.decalage + " " + this.valueTodecalR + " " + this.totalCadre*this.decalage + " " + this.count)				
				}
			}
		return 0;
		}

	}




var SwitchOpacity = function(imgId){


	this.id = imgId
	this.opc = 1;
	this.raport = 0.05;
	this.vitesse = 50
	this.show;
	this.hide;

	this.init = function(){
//			alert(this.id)
/*		this.opc = 1;
		this.raport = 0.05;
		this.vitesse = 10*/
//		alert(this.raport)
		clearTimeout (this.show);
		clearTimeout (this.hide);
		this.MouseOver();
	 }
			 
	this.MouseOver = function (){

		this.opc -= this.raport;
		this.vitesse -= 1
		var cur=getObject(this.id);
		cur.style.opacity = this.opc;
		cur.style["filter"] = "Alpha(opacity="+(this.opc*100)+")";
		if (this.opc > 0.5) {
				var monContexte = this;
				this.show = setTimeout(function (){monContexte.MouseOver();},this.vitesse)
			}
//		else{clearTimeout (this.show);}			
	}


	this.MouseOut = function (){

		this.opc += this.raport;
		this.vitesse += 1
		var cur=getObject(this.id);
		cur.style.opacity = this.opc;
		cur.style["filter"] = "Alpha(opacity="+(this.opc*100)+")";
		clearTimeout(this.show);
		if (this.opc <= 1) {
				var monContexte = this;
				setTimeout(function (){monContexte.MouseOut();},this.vitesse)
			}
		else{clearTimeout (this.hide);}
	}


}

