// Diaporama
// Version : 6.04.03 modifiée par Bob (comp. xhtml)
//
// http://so.fun.free.fr
if (monDiaporama == null)
{
var monDiaporama = new Array();
}
function Diaporama(id_diaporama, frequenceH, vitesseH, delai, largeurMax, hauteurMax, typeTransition)
{
this.id_diaporama = id_diaporama;
this.diapo = new Array();
this.calque1 = "";
this.calque2 = "";
this.frequenceH = frequenceH;
this.vitesseH = vitesseH;
this.delai = delai; // délai entre chaque rotations
this.largeurMax = largeurMax;
this.hauteurMax = hauteurMax;
this.indexDiapo = 2;
this.masquePanneauCommande = false;
this.epaisseurCadre = 0;
this.couleurCadre = "#52733E";
if (!typeTransition) // slide ou flou
{
this.typeTransition = "slide";
}
else
{
this.typeTransition = "flou";
}
this.stats = new Image();
this.stats.src = "";
}
function ajoutePhoto(url_photo)
{
nb_diapo = this.diapo.length;
this.diapo[nb_diapo] = new Image();
this.diapo[nb_diapo].src = url_photo;
}
function progressionChangeDiapoH()
{
if (this.calque1.offsetWidth > 0)
{
if ( (this.calque1.offsetWidth - this.vitesseH) < 0)
{
this.calque1.style.width = "0px";
}
else
{
this.calque1.style.width = (this.calque1.offsetWidth - this.vitesseH) + "px";
}
setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoH()", this.frequenceH);
}
else
{ // inversion des calques
this.calque1.style.zIndex = 1; // le calque écrasé passe au dessous
this.calque2.style.zIndex = 2; // le calque visible passe au dessus
this.calque1.style.width = this.largeurMax + "px"; // le calque du dessous reprends sa taille initiale
// Mise en place d'une nouvelle image dans le calque qui se trouve en arrière
this.calque1.style.backgroundImage = "url('" + this.diapo[this.indexDiapo].src + "')";
this.indexDiapo++;
if (this.indexDiapo >= this.diapo.length) this.indexDiapo = 0;
//inversion des références des calques car seul calque1 rétrécit
calqueTemp = this.calque2;
this.calque2 = this.calque1;
this.calque1 = calqueTemp;
if ( !(document.getElementById('cb_defilement_' + this.id_diaporama)) || document.getElementById('cb_defilement_' + this.id_diaporama).checked )
{
setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoH()", this.delai);
}
else
{
setTimeout("monDiaporama[" + this.id_diaporama + "].pause()", this.delai);
}
}
}
function progressionChangeDiapoFlou()
{
this.vitesse = this.vitesseH;
this.frequence = this.frequenceH;
if (this.calque1.style.opacity > 0)
{// disparition de l'image du dessus
// pour Firefox (le paramètre existe sous IE mais n'a pas d'influence)
// ce paramètre sert de base commune pour les deux navigateurs pour tester l'état du calque
opacite = parseFloat(this.calque1.style.opacity) - parseFloat(this.vitesse / 100);
if (opacite < 0)
{
opacite=0;
}
this.calque1.style.opacity = opacite
// pour IE
if (this.calque1.style.filter)
{
texte = this.calque1.style.filter;
opacite = texte.replace(/alpha\(opacity=([0-9]*)\)/, '$1');
opacite = parseFloat(opacite) - this.vitesse;
if (opacite < 0)
{
opacite=0;
}
//nouveau_texte = texte.replace(/alpha\(opacity=([0-9]*)\)/, 'alpha(opacity=' + opacite + ')');
nouveau_texte = 'alpha(opacity=' + opacite + ')';
this.calque1.style.filter = nouveau_texte;
}
setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.frequence);
}
else
{ // inversion des calques
this.calque1.style.zIndex = 1; // le calque écrasé passe au dessous
this.calque2.style.zIndex = 2; // le calque visible passe au dessus
this.calque1.style.opacity = 1; // le calque du dessous reprends sa taille initiale
if (this.calque1.style.filter)
{
this.calque1.style.filter = 'alpha(opacity=100)';
}
// Mise en place d'une nouvelle image dans le calque qui se trouve en arrière
this.calque1.style.backgroundImage = "url('" + this.diapo[this.indexDiapo].src + "')";
this.indexDiapo++;
if (this.indexDiapo >= this.diapo.length) this.indexDiapo = 0;
//inversion des références des calques car seul calque1 rétrécit
calqueTemp = this.calque2;
this.calque2 = this.calque1;
this.calque1 = calqueTemp;
if ( !(document.getElementById('cb_defilement_' + this.id_diaporama)) || document.getElementById('cb_defilement_' + this.id_diaporama).checked )
{
setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.delai);
}
else
{
setTimeout("monDiaporama[" + this.id_diaporama + "].pause()", this.delai);
}
}
}
function pause()
{
if ( !(document.getElementById('cb_defilement_' + this.id_diaporama)) || document.getElementById('cb_defilement_' + this.id_diaporama).checked )
{
if (this.typeTransition == "slide")
{
setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoH()", this.delai);
}
else if (this.typeTransition == "flou")
{
setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.delai);
}
}
else
{
setTimeout("monDiaporama[" + this.id_diaporama + "].pause()", 1000);
}
}
function placeDiaporama()
{
navigateur = navigator.appName; // test du navigateur pour inclure la propriété non conforme filter:alpha de IE
filterIE = ""; if (navigateur == 'Microsoft Internet Explorer') {filterIE = "filter: alpha(opacity=100)";}
document.write('
'); // début du tableau pour le cadre
document.write('');
document.write(' '); // je réutilise une des images à la place d'un pixel transparent
document.write('');
document.write('');
document.write(' | Chargement... | ');
document.write(' |
'); // fin du tableau pour le cadre
this.calque1 = document.getElementById('div_diapo1_' + this.id_diaporama);
this.calque2 = document.getElementById('div_diapo2_' + this.id_diaporama);
this.calque1.style.height = this.hauteurMax + "px";
this.calque2.style.height = this.hauteurMax + "px";
this.calque1.style.width = this.largeurMax + "px";
this.calque2.style.width = this.largeurMax + "px";
this.calque1.style.zIndex = 2; // dessus
this.calque2.style.zIndex = 1; // dessous
}
function testImagesOk()
{
this.nbImagesOk = 0;
// boucle pour compter le nombre d'images chargées
nbImagesOk = 0;
for (i=0; i= this.diapo.length)
{
if (this.masquePanneauCommande)
{
panneauCommande = '';
}
else
{
panneauCommande = 'automatique';
}
document.getElementById('div_chargement_' + this.id_diaporama).innerHTML = panneauCommande;
if (this.typeTransition == "slide")
{
setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoH()", this.delai);
}
else if (this.typeTransition == "flou")
{
setTimeout("monDiaporama[" + this.id_diaporama + "].progressionChangeDiapoFlou()", this.delai);
}
}
else
{
setTimeout("monDiaporama[" + this.id_diaporama + "].testImagesOk()", 1000);
}
}
function masquerPanneauCommande()
{
this.masquePanneauCommande = true;
}
function ajouteCadre(epaisseur, couleur)
{
this.epaisseurCadre = epaisseur;
this.couleurCadre = couleur;
}
// liaison des fonctions à l'objet
Diaporama.prototype.ajoutePhoto = ajoutePhoto;
Diaporama.prototype.progressionChangeDiapoH = progressionChangeDiapoH;
Diaporama.prototype.progressionChangeDiapoFlou = progressionChangeDiapoFlou;
Diaporama.prototype.pause = pause;
Diaporama.prototype.placeDiaporama = placeDiaporama;
Diaporama.prototype.testImagesOk = testImagesOk;
Diaporama.prototype.masquerPanneauCommande = masquerPanneauCommande;
Diaporama.prototype.ajouteCadre = ajouteCadre;
// Configuration personnalisée du diaporama
nouveau_id_diaporama = "0"; // Valeur numérique au choix propre à chaque diaporama, nécessaire en cas de plusieurs diaporamas.
// Paramètres : durée transition, étapes de transition en %, pause entre transitions, largeur image, hauteur image, style diaporama : "flou "/ "" (slide par défaut si vide) //
monDiaporama[nouveau_id_diaporama] = new Diaporama(nouveau_id_diaporama, 30, 2, 1000, 200, 120, "flou");
// Au moins trois photos à définir
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/lhorsdutemps.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/jeepcustom.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/bioenergies.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/globerouleur2.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/carabiniers.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/laclefdevoute.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/lateliercuisine.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/arebours.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/sophrene.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/capelans.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/vibrato.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/annelysgalen.jpg");
monDiaporama[nouveau_id_diaporama].ajoutePhoto("./images/sites/poulenc.jpg");
monDiaporama[nouveau_id_diaporama].masquerPanneauCommande();
// monDiaporama[nouveau_id_diaporama].ajouteCadre(3, "#000000");
monDiaporama[nouveau_id_diaporama].placeDiaporama();
monDiaporama[nouveau_id_diaporama].testImagesOk();