
function iniInterpolation(){
}
function interpolationEffacer(_Element, proprieteCSS){
if(typeof(_Element.interpolation) != "undefined"){
_Interpolation = _Element.interpolation[proprieteCSS];
effacerInterval(_Interpolation);
}
}
function interpolationDefinition(_Element, proprieteCSS, typeInterpolation, valeurDebut, valeurFin, duree){
var _ElementArchive = _Element;
if(_Element == null || _Element == ""){
interpolationErreur(_ElementArchive);
return false;
}
switch(typeof(_Element)){
 
case "string":
_ElementId = _Element;
_Element = $id(_ElementId);
if(_Element == null){
interpolationErreur(_ElementArchive);
return false;
}
break;
 
case "object":
if(_Element.id == "")
appliquerIdGenerique(_Element);
_ElementId = _Element.id;
break;
default :
break;
}
if(typeof(_Element.interpolation) == "undefined")
_Element.interpolation = Array();
switch(proprieteCSS){
case "background-color":
proprieteCSSenJS = "backgroundColor";
break;
case "border-color":
proprieteCSSenJS = "borderColor";
break;
case "width":
proprieteCSSenJS = "width";
break;
case "height":
proprieteCSSenJS = "height";
break;
case "top":
proprieteCSSenJS = "top";
break;
case "left":
proprieteCSSenJS = "left";
break;
case "margin":
proprieteCSSenJS = "margin";
break;
case "margin-top":
proprieteCSSenJS = "marginTop";
break;
case "margin-left":
proprieteCSSenJS = "marginLeft";
break;
case "margin-bottom":
proprieteCSSenJS = "marginBottom";
break;
case "margin-right":
proprieteCSSenJS = "marginRight";
break;
case "font-size":
proprieteCSSenJS = "fontSize";
break;
case "color":
proprieteCSSenJS = "color";
break;
case "opacity":
proprieteCSSenJS = "opacity";
break;
default :
proprieteCSSenJS = "";
alert("Interpolation impossible : La propriété '" + proprieteCSS + "' n'est pas reconnue");
return false;
break;
}
_Element.interpolation[proprieteCSS] = new classInterpolation(_Element, proprieteCSS, proprieteCSSenJS, typeInterpolation, valeurDebut, valeurFin, duree);
}
function classInterpolation(_Element, proprieteCSS, proprieteCSSenJS, typeInterpolation, valeurDebut, valeurFin, duree){
 switch(typeof(_Element)){
 
case "string":
_ElementId = _Element;
_Element = $id(_ElementId);
break;
 
case "object":
_ElementId = _Element.id;
_Element = $id(_ElementId);
break;
 
default:
alert("Interpolation impossible : Vous devez donner un identifiant à l'élément choisi");
return false;
break;
 
}
this._ElementId = _ElementId;
this.proprieteCSS = proprieteCSS;
this.proprieteCSSenJS = proprieteCSSenJS;
this.typeInterpolation = typeInterpolation;
this.valeurDebut = valeurDebut;
this.valeurFin = valeurFin;
this.duree = duree;
this.etatLecture = "enCreation";
this.sensLecture = null;
if(proprieteCSS == "opacity"){
this.cadence = 24; }else{
this.cadence = 75; }
this.nbDeValeurs = Math.ceil(this.duree / 1000 * this.cadence + 1); this.tabValeursInterpol = new Array(this.nbDeValeurs); this.index = 0;
var typeDeLaValeur;
switch(this.proprieteCSSenJS){
case "backgroundColor":
typeDeLaValeur = "couleur";
valeurProprieteDebut = "#";
valeurProprieteUnite = "";
break;
case "borderColor":
typeDeLaValeur = "couleur";
valeurProprieteDebut = "#";
valeurProprieteUnite = "";
break;
case "width":
typeDeLaValeur = "nombre";
valeurProprieteDebut = "";
valeurProprieteUnite = "px";
break;
case "height":
typeDeLaValeur = "nombre";
valeurProprieteDebut = "";
valeurProprieteUnite = "px";
break;
case "top":
typeDeLaValeur = "nombre";
valeurProprieteDebut = "";
valeurProprieteUnite = "px";
break;
case "left":
typeDeLaValeur = "nombre";
valeurProprieteDebut = "";
valeurProprieteUnite = "px";
break;
case "margin":
typeDeLaValeur = "nombre";
valeurProprieteDebut = "";
valeurProprieteUnite = "px";
break;
case "marginTop":
typeDeLaValeur = "nombre";
valeurProprieteDebut = "";
valeurProprieteUnite = "px";
break;
case "marginLeft":
typeDeLaValeur = "nombre";
valeurProprieteDebut = "";
valeurProprieteUnite = "px";
break;
case "marginBottom":
typeDeLaValeur = "nombre";
valeurProprieteDebut = "";
valeurProprieteUnite = "px";
break;
case "marginRight":
typeDeLaValeur = "nombre";
valeurProprieteDebut = "";
valeurProprieteUnite = "px";
break;
case "fontSize":
typeDeLaValeur = "nombre";
valeurProprieteDebut = "";
valeurProprieteUnite = "px";
break;
case "color":
typeDeLaValeur = "couleur";
valeurProprieteDebut = "#";
valeurProprieteUnite = "";
break;
case "opacity":
typeDeLaValeur = "nombre";
valeurProprieteDebut = "";
valeurProprieteUnite = "";
break;
default :
typeDeLaValeur = "vide";
valeurProprieteDebut = "";
valeurProprieteUnite = "";
break;
}
switch(this.typeInterpolation){
case "regulier":
switch(typeDeLaValeur){
case "nombre":
var valeurDuPas = (this.valeurFin - this.valeurDebut) / (this.nbDeValeurs - 1);
var valeurIntermediaire= this.valeurDebut;
for(var i = 0; i < this.nbDeValeurs; i++){
if(i == 0)
valeurIntermediaire = this.valeurDebut;
if(i == (this.nbDeValeurs - 1))
valeurIntermediaire = this.valeurFin;
this.tabValeursInterpol[i] = Math.ceil(valeurIntermediaire) + valeurProprieteUnite;
valeurIntermediaire = valeurIntermediaire + valeurDuPas;
}
break;
case "couleur":
var hexaR_Debut = this.valeurDebut.substr(0, 2);
var hexaV_Debut = this.valeurDebut.substr(2, 2);
var hexaB_Debut = this.valeurDebut.substr(4, 2);
var decimalR_Debut = parseInt(hexaR_Debut, 16);
var decimalV_Debut = parseInt(hexaV_Debut, 16);
var decimalB_Debut = parseInt(hexaB_Debut, 16);
var hexaR_Fin = this.valeurFin.substr(0, 2);
var hexaV_Fin = this.valeurFin.substr(2, 2);
var hexaB_Fin = this.valeurFin.substr(4, 2);
var decimalR_Fin = parseInt(hexaR_Fin, 16);
var decimalV_Fin = parseInt(hexaV_Fin, 16);
var decimalB_Fin = parseInt(hexaB_Fin, 16);
var valeurDuPasR = (decimalR_Fin - decimalR_Debut) / (this.nbDeValeurs - 1);
var valeurDuPasV = (decimalV_Fin - decimalV_Debut) / (this.nbDeValeurs - 1);
var valeurDuPasB = (decimalB_Fin - decimalB_Debut) / (this.nbDeValeurs - 1);
var valeurIntermediaireR = decimalR_Debut;
var valeurIntermediaireV = decimalV_Debut;
var valeurIntermediaireB = decimalB_Debut;
for(var i = 0; i < this.nbDeValeurs; i++){
hexaR = Math.ceil(valeurIntermediaireR).toString(16);
hexaV = Math.ceil(valeurIntermediaireV).toString(16);
hexaB = Math.ceil(valeurIntermediaireB).toString(16);
if(hexaR.length == 1)
hexaR = "0" + hexaR;
if(hexaV.length == 1)
hexaV = "0" + hexaV;
if(hexaB.length == 1)
hexaB = "0" + hexaB;
if( i == 0){
hexaR = hexaR_Debut;
hexaV = hexaV_Debut;
hexaB = hexaB_Debut;
}
if(i == (this.nbDeValeurs - 1)){
hexaR = hexaR_Fin;
hexaV = hexaV_Fin;
hexaB = hexaB_Fin;
}
this.tabValeursInterpol[i] = valeurProprieteDebut +  hexaR + hexaV + hexaB;
valeurIntermediaireR = valeurIntermediaireR + valeurDuPasR;
valeurIntermediaireV = valeurIntermediaireV + valeurDuPasV;
valeurIntermediaireB = valeurIntermediaireB + valeurDuPasB;
}
break;
default :
typeDeLaValeur = "vide"; break;
}
break;
case "accelerer":
switch(typeDeLaValeur){
case "nombre":
var valeurDuPas = 90 / (this.nbDeValeurs - 1);
var distance = this.valeurFin - this.valeurDebut;
for(var i = 0; i < this.nbDeValeurs; i++){
k = 1 - Math.sin(Math.convDegEnRad(90 + valeurDuPas * i));
valeurIntermediaire = this.valeurDebut + (distance * k);
if(i == 0)
valeurIntermediaire = this.valeurDebut;
if(i == (this.nbDeValeurs - 1))
valeurIntermediaire = this.valeurFin;
this.tabValeursInterpol[i] = Math.ceil(valeurIntermediaire) + valeurProprieteUnite;
}
break;
case "couleur":
var hexaR_Debut = this.valeurDebut.substr(0, 2);
var hexaV_Debut = this.valeurDebut.substr(2, 2);
var hexaB_Debut = this.valeurDebut.substr(4, 2);
var decimalR_Debut = parseInt(hexaR_Debut, 16);
var decimalV_Debut = parseInt(hexaV_Debut, 16);
var decimalB_Debut = parseInt(hexaB_Debut, 16);
var hexaR_Fin = this.valeurFin.substr(0, 2);
var hexaV_Fin = this.valeurFin.substr(2, 2);
var hexaB_Fin = this.valeurFin.substr(4, 2);
var decimalR_Fin = parseInt(hexaR_Fin, 16);
var decimalV_Fin = parseInt(hexaV_Fin, 16);
var decimalB_Fin = parseInt(hexaB_Fin, 16);
var valeurDuPas = 90 / (this.nbDeValeurs - 1);
var distanceR = decimalR_Fin - decimalR_Debut;
var distanceV = decimalV_Fin - decimalV_Debut;
var distanceB = decimalB_Fin - decimalB_Debut;
for(var i = 0; i < this.nbDeValeurs; i++){
k = 1 - Math.sin(Math.convDegEnRad(90 + valeurDuPas * i));
valeurIntermediaireR = decimalR_Debut + (distanceR * k);
valeurIntermediaireV = decimalV_Debut + (distanceV * k);
valeurIntermediaireB = decimalB_Debut + (distanceB * k);
hexaR = Math.ceil(valeurIntermediaireR).toString(16);
hexaV = Math.ceil(valeurIntermediaireV).toString(16);
hexaB = Math.ceil(valeurIntermediaireB).toString(16);
if(hexaR.length == 1)
hexaR = "0" + hexaR;
if(hexaV.length == 1)
hexaV = "0" + hexaV;
if(hexaB.length == 1)
hexaB = "0" + hexaB;
if( i == 0){
hexaR = hexaR_Debut;
hexaV = hexaV_Debut;
hexaB = hexaB_Debut;
}
if(i == (this.nbDeValeurs - 1)){
hexaR = hexaR_Fin;
hexaV = hexaV_Fin;
hexaB = hexaB_Fin;
}
this.tabValeursInterpol[i] = valeurProprieteDebut +  hexaR + hexaV + hexaB;
}
break;
default :
typeDeLaValeur = "vide"; break;
}
break;
case "decelerer":
switch(typeDeLaValeur){
case "nombre":
var valeurDuPas = 90 / (this.nbDeValeurs - 1);
var distance = this.valeurFin - this.valeurDebut;
for(var i = 0; i < this.nbDeValeurs; i++){
k = Math.sin(Math.convDegEnRad(valeurDuPas * i));
valeurIntermediaire = this.valeurDebut + (distance * k);
if(i == 0)
valeurIntermediaire = this.valeurDebut;
if(i == (this.nbDeValeurs - 1))
valeurIntermediaire = this.valeurFin;
this.tabValeursInterpol[i] = Math.ceil(valeurIntermediaire) + valeurProprieteUnite;
}
break;
case "couleur":
var hexaR_Debut = this.valeurDebut.substr(0, 2);
var hexaV_Debut = this.valeurDebut.substr(2, 2);
var hexaB_Debut = this.valeurDebut.substr(4, 2);
var decimalR_Debut = parseInt(hexaR_Debut, 16);
var decimalV_Debut = parseInt(hexaV_Debut, 16);
var decimalB_Debut = parseInt(hexaB_Debut, 16);
var hexaR_Fin = this.valeurFin.substr(0, 2);
var hexaV_Fin = this.valeurFin.substr(2, 2);
var hexaB_Fin = this.valeurFin.substr(4, 2);
var decimalR_Fin = parseInt(hexaR_Fin, 16);
var decimalV_Fin = parseInt(hexaV_Fin, 16);
var decimalB_Fin = parseInt(hexaB_Fin, 16);
var ref = Math.PI / 2 / 90; 
var valeurDuPas = 90 / (this.nbDeValeurs - 1);
var distanceR = decimalR_Fin - decimalR_Debut;
var distanceV = decimalV_Fin - decimalV_Debut;
var distanceB = decimalB_Fin - decimalB_Debut;
for(var i = 0; i < this.nbDeValeurs; i++){
k = Math.sin(Math.convDegEnRad(valeurDuPas * i));
valeurIntermediaireR = decimalR_Debut + (distanceR * k);
valeurIntermediaireV = decimalV_Debut + (distanceV * k);
valeurIntermediaireB = decimalB_Debut + (distanceB * k);
hexaR = Math.ceil(valeurIntermediaireR).toString(16);
hexaV = Math.ceil(valeurIntermediaireV).toString(16);
hexaB = Math.ceil(valeurIntermediaireB).toString(16);
if(hexaR.length == 1)
hexaR = "0" + hexaR;
if(hexaV.length == 1)
hexaV = "0" + hexaV;
if(hexaB.length == 1)
hexaB = "0" + hexaB;
if( i == 0){
hexaR = hexaR_Debut;
hexaV = hexaV_Debut;
hexaB = hexaB_Debut;
}
if(i == (this.nbDeValeurs - 1)){
hexaR = hexaR_Fin;
hexaV = hexaV_Fin;
hexaB = hexaB_Fin;
}
this.tabValeursInterpol[i] = valeurProprieteDebut +  hexaR + hexaV + hexaB;
}
break;
default :
typeDeLaValeur = "vide"; break;
}
break;
case "allerRetour":
switch(typeDeLaValeur){
case "nombre":
var valeurDuPas = 180 / (this.nbDeValeurs - 1);
var distance = this.valeurFin - this.valeurDebut;
for(var i = 0; i < this.nbDeValeurs; i++){
k = Math.allerRetour(valeurDuPas * i);
valeurIntermediaire = this.valeurDebut + (distance * k);
if(i == 0)
valeurIntermediaire = this.valeurDebut;
if(i == (this.nbDeValeurs - 1))
valeurIntermediaire = this.valeurDebut;
this.tabValeursInterpol[i] = Math.ceil(valeurIntermediaire) + valeurProprieteUnite;
}
break;
case "couleur":
var hexaR_Debut = this.valeurDebut.substr(0, 2);
var hexaV_Debut = this.valeurDebut.substr(2, 2);
var hexaB_Debut = this.valeurDebut.substr(4, 2);
var decimalR_Debut = parseInt(hexaR_Debut, 16);
var decimalV_Debut = parseInt(hexaV_Debut, 16);
var decimalB_Debut = parseInt(hexaB_Debut, 16);
var hexaR_Fin = this.valeurFin.substr(0, 2);
var hexaV_Fin = this.valeurFin.substr(2, 2);
var hexaB_Fin = this.valeurFin.substr(4, 2);
var decimalR_Fin = parseInt(hexaR_Fin, 16);
var decimalV_Fin = parseInt(hexaV_Fin, 16);
var decimalB_Fin = parseInt(hexaB_Fin, 16);
var valeurDuPas = 180 / (this.nbDeValeurs - 1);
var distanceR = decimalR_Fin - decimalR_Debut;
var distanceV = decimalV_Fin - decimalV_Debut;
var distanceB = decimalB_Fin - decimalB_Debut;
for(var i = 0; i < this.nbDeValeurs; i++){
k = Math.allerRetour(valeurDuPas * i);
valeurIntermediaireR = decimalR_Debut + (distanceR * k);
valeurIntermediaireV = decimalV_Debut + (distanceV * k);
valeurIntermediaireB = decimalB_Debut + (distanceB * k);
hexaR = Math.ceil(valeurIntermediaireR).toString(16);
hexaV = Math.ceil(valeurIntermediaireV).toString(16);
hexaB = Math.ceil(valeurIntermediaireB).toString(16);
if(hexaR.length == 1)
hexaR = "0" + hexaR;
if(hexaV.length == 1)
hexaV = "0" + hexaV;
if(hexaB.length == 1)
hexaB = "0" + hexaB;
if( i == 0){
hexaR = hexaR_Debut;
hexaV = hexaV_Debut;
hexaB = hexaB_Debut;
}
if(i == (this.nbDeValeurs - 1)){
hexaR = hexaR_Debut;
hexaV = hexaV_Debut;
hexaB = hexaB_Debut;
}
this.tabValeursInterpol[i] = valeurProprieteDebut +  hexaR + hexaV + hexaB;
}
break;
default :
typeDeLaValeur = "vide"; break;
}
break;
case "rebond":
switch(typeDeLaValeur){
case "nombre":
var valeurDuPas = 180 / (this.nbDeValeurs - 1);
var distance = this.valeurFin - this.valeurDebut;
for(var i = 0; i < this.nbDeValeurs; i++){
k = Math.rebond(Math.ceil(valeurDuPas * i));
valeurIntermediaire = this.valeurDebut + (distance * k);
if(i == 0)
valeurIntermediaire = this.valeurDebut;
if(i == (this.nbDeValeurs - 1))
valeurIntermediaire = this.valeurDebut;
this.tabValeursInterpol[i] = Math.ceil(valeurIntermediaire) + valeurProprieteUnite;
}
break;
case "couleur":
var hexaR_Debut = this.valeurDebut.substr(0, 2);
var hexaV_Debut = this.valeurDebut.substr(2, 2);
var hexaB_Debut = this.valeurDebut.substr(4, 2);
var decimalR_Debut = parseInt(hexaR_Debut, 16);
var decimalV_Debut = parseInt(hexaV_Debut, 16);
var decimalB_Debut = parseInt(hexaB_Debut, 16);
var hexaR_Fin = this.valeurFin.substr(0, 2);
var hexaV_Fin = this.valeurFin.substr(2, 2);
var hexaB_Fin = this.valeurFin.substr(4, 2);
var decimalR_Fin = parseInt(hexaR_Fin, 16);
var decimalV_Fin = parseInt(hexaV_Fin, 16);
var decimalB_Fin = parseInt(hexaB_Fin, 16);
var valeurDuPas = 180 / (this.nbDeValeurs - 1);
var distanceR = decimalR_Fin - decimalR_Debut;
var distanceV = decimalV_Fin - decimalV_Debut;
var distanceB = decimalB_Fin - decimalB_Debut;
for(var i = 0; i < this.nbDeValeurs; i++){
k = Math.sin(Math.convDegEnRad(valeurDuPas * i));
valeurIntermediaireR = decimalR_Debut + (distanceR * k);
valeurIntermediaireV = decimalV_Debut + (distanceV * k);
valeurIntermediaireB = decimalB_Debut + (distanceB * k);
hexaR = Math.ceil(valeurIntermediaireR).toString(16);
hexaV = Math.ceil(valeurIntermediaireV).toString(16);
hexaB = Math.ceil(valeurIntermediaireB).toString(16);
if(hexaR.length == 1)
hexaR = "0" + hexaR;
if(hexaV.length == 1)
hexaV = "0" + hexaV;
if(hexaB.length == 1)
hexaB = "0" + hexaB;
if( i == 0){
hexaR = hexaR_Debut;
hexaV = hexaV_Debut;
hexaB = hexaB_Debut;
}
if(i == (this.nbDeValeurs - 1)){
hexaR = hexaR_Debut;
hexaV = hexaV_Debut;
hexaB = hexaB_Debut;
}
this.tabValeursInterpol[i] = valeurProprieteDebut +  hexaR + hexaV + hexaB;
}
break;
default :
typeDeLaValeur = "vide"; break;
}
break;
default :
break;
}
this.lecture = function(){
_Element = $id(this._ElementId);
if(this.etatLecture == "enCreation" || this.etatLecture == "stopDebut"){
this.index = 0;
if(this.debutSeqLectureNormale)
this.debutSeqLectureNormale();
}else{
_Element.interpolation[proprieteCSS].etatLecture = "stopEnCours";
effacerInterval(_Element.interpolation[proprieteCSS]);
}
this.etatLecture = "lecture";
this.sensLecture = "normal";
var appelFonction = 'lectureInterpolation("' + this._ElementId + '", "' + this.proprieteCSS + '", "' + this.proprieteCSSenJS + '")';
this.interval = window.setInterval(appelFonction, 1000 / this.cadence);
};
this.lectureInverse = function(){
_Element = $id(this._ElementId);
if(this.etatLecture == "enCreation" || this.etatLecture == "stopFin"){
this.index = this.nbDeValeurs - 1;
if(this.debutSeqLectureInverse)
this.debutSeqLectureInverse();
}else{
_Element.interpolation[proprieteCSS].etatLecture = "stopEnCours";
effacerInterval(_Element.interpolation[proprieteCSS]);
}
this.etatLecture = "lecture";
this.sensLecture = "inverse";
var appelFonction = 'lectureInverseInterpolation("' + this._ElementId + '", "' + this.proprieteCSS + '", "' + this.proprieteCSSenJS + '")';
this.interval = window.setInterval(appelFonction, 1000 / this.cadence);
};
this.lectureYoyo = function(){
if(this.sensLecture == "normal" || this.etatLecture == "stopFin"){
this.lectureInverse();
}else{
this.lecture();
}
};
this.teteLectureAuDebut = function(){
_Element = $id(this._ElementId);
this.etatLecture = "stopDebut";
this.sensLecture = "normal";
this.index = 0;
if(this.debutSeqLectureNormale)
this.debutSeqLectureNormale();
effacerInterval(_Element.interpolation[this.proprieteCSSenJS]);
_Interpolation = _Element.interpolation[this.proprieteCSS];
if(proprieteCSSenJS != "opacity"){
_Element.style[this.proprieteCSSenJS] = _Interpolation.tabValeursInterpol[0];
}else{
appliquerTransparence( this._ElementId, _Interpolation.tabValeursInterpol[0]);
}
};
}
function lectureInterpolation(_ElementId, proprieteCSS, proprieteCSSenJS){
_Element = $id(_ElementId);
_Interpolation = _Element.interpolation[proprieteCSS];
if(proprieteCSSenJS != "opacity"){
indexEnCours = _Interpolation.index;
_Element.style[proprieteCSSenJS] = _Interpolation.tabValeursInterpol[indexEnCours];
}else{
indexEnCours = _Interpolation.index;
appliquerTransparence(_ElementId, _Interpolation.tabValeursInterpol[indexEnCours]);
}
_Interpolation.index++;
if(_Interpolation.index == _Interpolation.nbDeValeurs){
_Interpolation.index = (_Interpolation.nbDeValeurs - 1);
_Interpolation.etatLecture = "stopFin";
effacerInterval(_Interpolation);
}
}
function lectureInverseInterpolation(_ElementId, proprieteCSS, proprieteCSSenJS){
_Element = $id(_ElementId);
_Interpolation = _Element.interpolation[proprieteCSS];
if(proprieteCSSenJS != "opacity"){
indexEnCours = _Interpolation.index;
_Element.style[proprieteCSSenJS] = _Interpolation.tabValeursInterpol[indexEnCours];
}else{
indexEnCours = _Interpolation.index;
appliquerTransparence(_ElementId, _Interpolation.tabValeursInterpol[indexEnCours]);
}
_Interpolation.index--;
if(_Interpolation.index < 0){
_Interpolation.index = 0;
_Interpolation.etatLecture = "stopDebut";
effacerInterval(_Interpolation);
}
}
function effacerInterval(_Interpolation){
window.clearInterval(_Interpolation.interval);
_Interpolation.interval = "undefined";
if(_Interpolation.sensLecture == "normal"){
_Interpolation.sensLecture = "aucun";
if(_Interpolation.etatLecture == "stopFin" && _Interpolation.typeInterpolation == "allerRetour"){
_Interpolation.etatLecture = "stopDebut";
}
if(_Interpolation.etatLecture == "stopFin" && _Interpolation.finSeqLectureNormale){
_Interpolation.finSeqLectureNormale();
return true;
}
}
if(_Interpolation.sensLecture == "inverse"){
_Interpolation.sensLecture = "aucun";
if(_Interpolation.etatLecture == "stopDebut" && _Interpolation.finSeqLectureInverse){
_Interpolation.finSeqLectureInverse();
return true;
}
}
}
function appliquerTransparence(_Element, pourcentageTransparence){
if(typeof(_Element) == "string")
_Element = $id(_Element);
_Element.style.opacity = pourcentageTransparence / 100;
_Element.style.filter = "alpha(opacity=" + pourcentageTransparence + ")";
if(pourcentageTransparence == 100){
_Element.style.opacity = "";
_Element.style.filter = "";
}
}
function connaitreEtat(_Interpolation){
window.status = _Interpolation.etatLecture + " -- " + _Interpolation.sensLecture;
}
Math.convDegEnRad = function(nbDegres){
return Math.PI / 180 * nbDegres;
};
Math.allerRetour = function(nbDegres){
return Math.sin(Math.convDegEnRad(nbDegres));
};
Math.rebond = function(nbDegres){
var debutPhase = Array();
debutPhase[1] = 0;
debutPhase[2] = 82;
debutPhase[3] = 148;
var longueurPhase = Array();
longueurPhase[1] = debutPhase[2];
longueurPhase[2] = debutPhase[3] - debutPhase[2];
longueurPhase[3] = 180 - debutPhase[3];
degres = nbDegres - debutPhase[1];
longueur = longueurPhase[1];
coefHauteur = 1;
if(nbDegres <= debutPhase[2]){
degres = nbDegres - debutPhase[1];
longueur = longueurPhase[1];
coefHauteur = 1;
}else{
if(nbDegres <= debutPhase[3]){
degres = nbDegres - debutPhase[2];
longueur = longueurPhase[2];
coefHauteur = 0.55;
}else{
degres = nbDegres - debutPhase[3];
longueur = longueurPhase[3];
coefHauteur = 0.13;
}
}
k = Math.allerRetour(degres * 180 / longueur) * coefHauteur;
if(k > 1)
k = 1;
if(k < 0)
k = 0;
return k;
};
function interpolationErreur(afficher){
alert("Interpolation impossible : l'objet '" + afficher + "' n'existe pas");
return true;
}