// Creation des parametres suivants pour les calques :
// lesCalques.cacher		cacher
// lesCalques.montrer		montrer
// lesCalques.getHaut		donne le haut (y)
// lesCalques.getGauche		donne la gauche (x)
// lesCalques.setHaut		fixe le haut (y)
// lesCalques.setGauche		fixe la gauche (x)
// lesCalques.bougeAbsolu	deplace le calque aux coordonnees x,y
// lesCalques.bougeRelatif	deplace le calque de x ou y pixels
// lesCalques.setZIndex		fixe le z-index du calque
// lesCalques.getLargeur		donne la largeur
// lesCalques.getHauteur		donne la hauteur
// lesCalques.setClipRect	fixe la zone de decoupe visible du calque

function creerCalques() {
// creation des objets calques
	if (caractNav.pf_NN4) 
		{
			creer_calques_NN(); 
		}
	else if (caractNav.pf_IE45) 
		{
			creer_calque_IE(); 
		}
	else if (caractNav.pf_NN6)
		{
			creer_calque_norme();
		}
}

function creer_calques_NN() 
{
// calques pour Netscape 4.X
	lesCalques = new Array();
	for (i = 0; i < document.layers.length; i++) {
		if (document.layers[i].name != "") {
			lesCalques[document.layers[i].name] = new calque_NN(document.layers[i]);
		}
	}
}

function creer_calque_IE() 
{
// calques pour Internet Explorer
	lesBalises = document.all.tags("div");
	lesCalques = new Array();
	for (i = 0; i < lesBalises.length; i++) {
		if (lesBalises[i].id != "") {
			lesCalques[lesBalises[i].id] = new calqueNorme(lesBalises[i]);
		}
	}
}

function creer_calque_norme()
{
// calques pour Netscape 6 et navigateurs respectant la norme W3C 
	lesBalises = document.getElementsByTagName("div");
	lesCalques = new Array();
	for (i = 0; i < lesBalises.length; i++) {
		var monCalque = lesBalises[i];
		if (monCalque.id != "") { 
			lesCalques[monCalque.id] = new calqueNorme(monCalque); 
		}
	}
}


// Proprietes pour les navigateurs normes, utilise aussi pour les calques IE 4.x et 5.x
function calqueNorme(monCalque) {
	this.css2 = monCalque;
	this.nom = monCalque.id;
	this.cacher = cacherNorme; 
	this.montrer = montrerNorme;
	this.getHaut = getHautNorme;
	this.getGauche = getGaucheNorme;
	this.getLargeur = getLargeurNorme;
	this.getHauteur = getHauteurNorme;
	this.getBas = getBasNorme;
	this.setHaut = setHautNorme;
	this.setGauche = setGaucheNorme;
	this.bougeAbsolu = bougerAbsoluNorme;
	this.bougeRelatif = bougerRelatifNorme;
	this.setZIndex = setZIndexNorme;
	this.setClipRect = setClipRectNorme;
}


// Proprietes pour Netscape 4.X
function calque_NN(monCalque) {
	this.css2 = monCalque;
	this.nom = monCalque.name;
	this.cacher = cacherNN;
	this.montrer = montrerNN;
	this.getHaut = getHautNN;
	this.getGauche = getGaucheNN;
	this.getLargeur = getLargeurNN;
	this.getHauteur = getHauteurNN;
	this.getBas = getBasNorme;
	this.setHaut = setHautNN;
	this.setGauche = setGaucheNN;
	this.bougeAbsolu = bougerAbsoluNorme;
	this.bougeRelatif = bougerRelatifNorme;
	this.setZIndex = setZIndexNN;
	this.setClipRect = setClipRectNN;
}

// Navigateurs normes et IE, cacher le calque
function cacherNorme() {
   this.css2.style.visibility = "hidden";
}

// Navigateurs Netscape 4.x, cacher le calque
function cacherNN() {
	this.css2.visibility = "hidden";
}

// Navigateurs normes et IE, montrer le calque
function montrerNorme() {
   this.css2.style.visibility = "visible";
}

// Navigateurs Netscape 4.x, montrer le calque
function montrerNN() {
	this.css2.visibility = "inherit";
}

// Navigateurs normes et IE, obtenir le haut
function getHautNorme() {
	var monHaut = parseInt(this.css2.style.top);
	return monHaut;
}

// Navigateurs Netscape 4.x, obtenir le haut
function getHautNN () {
	return this.css2.top;
}

// Navigateurs normes et IE, obtenir la gauche
function getGaucheNorme() {
	var maGauche = parseInt(this.css2.style.left);
	return maGauche;
}

// Navigateurs Netscape 4.x, obtenir la gauche
function getGaucheNN() {
	return this.css2.left;
}

// Navigateurs normes et IE, obtenir la largeur
function getLargeurNorme() {
	var maLargeur = parseInt(this.css2.style.width);
	return maLargeur;
}

// Navigateurs Netscape 4.x, obtenir la largeur
function getLargeurNN() {
	return this.css2.clip.width;
}

// Navigateurs normes et IE, obtenir la hauteur
function getHauteurNorme() {
	var maHauteur = parseInt(this.css2.style.height);
	return maHauteur;
}

// Navigateurs Netscape 4.x, obtenir la hauteur
function getHauteurNN() {
	return this.css2.clip.height;
}

// Obtenir le bas
function getBasNorme() {
   monBas = this.getHaut() + this.getHauteur();
   return monBas;    
}

// Navigateurs normes et IE, fixer le haut
function setHautNorme(monHaut) {
	this.css2.style.top = monHaut + "px";
}

// Navigateurs Netscape 4.x, fixer le haut
function setHautNN(monHaut) {
	this.css2.top = monHaut;
} 

// Navigateurs normes et IE, fixer la gauche
function setGaucheNorme(maGauche) {
	this.css2.style.left = maGauche + "px";
}

// Navigateurs Netscape 4.x, fixer la gauche
function setGaucheNN(maGauche) {
	this.css2.left = maGauche;
}

// Deplacement absolu du calque
function bougerAbsoluNorme(maGauche,monHaut) {
   this.setGauche(maGauche);
   this.setHaut(monHaut);
}

// Deplacement relatif du calque
function bougerRelatifNorme(maGauche,monHaut) {
   this.setGauche(maGauche + this.getGauche());
   this.setHaut(monHaut + this.getHaut());    
}

// Navigateurs normes et IE, fixer le Z-index
function setZIndexNorme(zindex) {
   this.css2.style.zIndex = zindex;
}

// Navigateurs Netscape 4.x, fixer le Z-index
function setZIndexNN(zindex) {
	this.css2.zIndex = zindex;
}

// Navigateurs normes et IE, definir la zone visible du calque
function setClipRectNorme(maGauche,monHaut,maDroite,monBas) {
	var monRect = "rect(" + monHaut + "px, " + maDroite + "px, " + monBas + "px, " + maGauche + "px)";
	this.css2.style.clip = monRect;
}

// Navigateurs Netscape 4.x, definir la zone visible du calque
function setClipRectNN(maGauche,monHaut,maDroite,monBas) {
	this.css2.clip.top = monHaut;
	this.css2.clip.right = maDroite;
	this.css2.clip.bottom = monBas;
	this.css2.clip.left = maGauche;
}
