// JavaScript Classe Bande


/*############################################################################################################################
#	La classe Bande
/*############################################################################################################################
#	- Réalisation/Copyright : Nicolas LUSSAGNET
#	- Date : 21 octobre 2005 @ 14h32
#	- site web : www.nikkowebsite.com
#	- contact : contact@nikkowebsite.com
#	- principe : 
#				 Il s'agit de crééer des divs et des les positionner les uns à la suite des autres dans le document HTML.
#				 Il est ensuite possible de modififier les propriété de styles pour mettre un arrière plan (image ou couleur 
#				 ou transparent). C'est donc un moyen de générer une structure d'arrière plan pour présenter des maquette 
#				 par exemple.
#	- fonctionnement :
#				 Il suffit d'appeller le contructeur de classe en lui transmettant les variable attendue :
#				 	- width = la largeur de la bande : 
#						:: exprimée sous forme de string pour une valeur en pourcentage : '100%'
#						:: exprimée sous forme de number pour une valeur en px : 295
#				 	- height = la largeur de la bande
#						:: exprimée sous forme de string pour une valeur en pourcentage : '100%'
#						:: exprimée sous forme de number pour une valeur en px : 295
#				 	- bg = la propriété de style générale background
#						:: exprimée sous forme de string  : 'url(img/fonds_bleu.gif) repeat' ou '#fff" ou 'navy' ...
#				 Une balise div est ensuite créée par le constructeur et ajoutée au document HTML. 
############################################################################################################################*/
	
	// Constructeur de classe
	// -----------------------------------
	function Bande(width,height,bg) {
		
		// Propriétés
		// -----------------------------------
		this.width		= width;		// largeur de la bande : 	- string : '100%'	=> en pourcentage
										//							- number :  95		=> converti en pixels	
		this.height		= height;		// hauteur de la bande : 	- string : '100%'	=> en pourcentage
										//							- number :  95		=> converti en pixels	
		this.bg			= bg;			// propriété de style générale background
		
		
		// Méthodes
		// -----------------------------------
		this.toString		= Bande_afficher;		// permet d'afficher des informations concerant l'objet
		this.writeMsg		= Bande_writeMsg;		// permet d'écrire dans le document
		this.setProperty	= Bande_setProperty;	// permet d'écrire une propriété de l'objet
		this.getProperty	= Bande_getProperty;	// permet de lire une propriété de l'objet
		this.swapProperty	= Bande_swapProperty;	// permet d'intervertir une propriété d'un objet à un autre
		
		
		// Initialisation
		// -----------------------------------
		
			// Création du div de l'objet bande
			this.box = document.createElement("div");

			// Mise en forme de la bande
			this.box.style.background = (this.bg != "transparent" ? this.bg : "");
			this.box.style.height = this.height + "px";
			this.box.style.width = this.width;
			this.box.style.margin = 0;
			this.box.style.padding = 0;
			
			// Attache la bande à la fin du document
			document.body.appendChild(this.box);
		
	}
	
	// Méthode afficher()
	// -----------------------------------
	function Bande_afficher() {
		var infos = "";
		infos += "<ul>";
		for(var p in this){
			infos += "<li>"+ p.substring(0,1).toUpperCase() + p.substring(1,p.length) + " = " + this[p] + "</li>";
		}
		infos += "</ul>";
		return infos;
	}
	
	
	// Méthode writeMsg()
	// -----------------------------------
	function Bande_writeMsg(sText) {
		document.write(sText + "<br>\n");
	}
	
	
	// Méthode setProperty()
	// -----------------------------------
	function Bande_setProperty(sProperty,sValeur) {
		var property = this.box.style;
		if(property){
			property[sProperty] = sValeur;
		}
	}
	
	
	// Méthode getProperty()
	// -----------------------------------
	function Bande_getProperty(sProperty) {
		var property = this.box.style;
		if(property){
			return property[sProperty];
		}
	}
	
	
	// Méthode swapProperty()
	// -----------------------------------
	function Bande_swapProperty(sProperty,oBande) {
		// mémoriser la propriété du premier objet
		var tmpProperty = this.getProperty(sProperty);
		
		// Attribution de la propriété de l'objet 2 à l'objet 1
		this.setProperty(sProperty,oBande.getProperty(sProperty));
		
		// Attribution de la propriété de l'objet 1 à l'objet 2
		oBande.setProperty(sProperty,tmpProperty);
	}
	
	
/*############################################################################################################################
#	Fin classe Bande
############################################################################################################################*/
