/**********************************
CLASSE DONNEE SIMPLE

*************************************/
ClasseDonneesGenerales = function(id,valeur) {
	this.init(id,valeur);
}
ClasseDonneesGenerales.prototype.init = function(id,valeur) {
	this.setId(id);	
	this.setValeur(valeur);	
}

ClasseDonneesGenerales.prototype.getId = function() {
	return this.id;
}
ClasseDonneesGenerales.prototype.setId = function(val) {
	this.id = val;
}

ClasseDonneesGenerales.prototype.getValeur = function() {
	return this.valeur;
}
ClasseDonneesGenerales.prototype.setValeur = function(val) {
	this.valeur = val;
}
/**********************************
CLASSE DONNEES TABLEAU

*************************************/

ClasseDonneesGeneralesTableau = function(id) {
	this.init(id);
}
ClasseDonneesGeneralesTableau.prototype.init = function(id) {
	this.setId(id);	
	this.lesdonneestableau=new Array;	
}

ClasseDonneesGeneralesTableau.prototype.getId = function() {
	return this.id;
}
ClasseDonneesGeneralesTableau.prototype.setId = function(val) {
	this.id = val;
}

ClasseDonneesGeneralesTableau.prototype.getLeTableau = function() {
	return this.lesdonneestableau;
}

ClasseDonneesGeneralesTableau.prototype.ajouteUneDonneeAuTableau = function(id,valeur) {
	return this.lesdonneestableau[this.lesdonneestableau.length]=new ClasseDonneesGenerales(id,valeur);
}

ClasseDonneesGeneralesTableau.prototype.getLesDonneesTableau = function() {
	return this.lesdonneestableau;
}

ClasseDonneesGeneralesTableau.prototype.getDonneeDuTableauDid = function(id) {
	var elt=null;
	var bTrouve=false;
	var i=0;
	while((i<this.lesdonneestableau.length)&&(!bTrouve)){
		if(this.lesdonneestableau[i].getId()==id){
			elt=this.lesdonneestableau[i];
			bTrouve=true;
		}
		i++;
	}
	return elt;
}

ClasseDonneesGeneralesTableau.prototype.setValeurDonneeTableauDid = function(id,valeur) {
	
	var elt=this.getDonneeDuTableauDid(id);
	if(elt){
		//La valeur existe deja on change son contenu
		elt.setValeur(valeur);
	}
	else{
		this.ajouteUneDonneeAuTableau(id,valeur);
	}
}


ClasseDonneesGeneralesTableau.prototype.supprimeDonneeTableauDid = function(id) {

	var tmpTableau=new Array();
	var i=0;
	while(i<this.lesdonneestableau.length){
		if(this.lesdonneestableau[i].getId()!=id){
			tmpTableau[tmpTableau.length]=this.lesdonneestableau[i];
		}
		i++;
	}
	this.lesdonneestableau=tmpTableau;
}


/**********************************
CLASSE GENERALE

*************************************/
ClasseGestionDonneesGenerales = function(eltstatique) {
	this.init(eltstatique);
}

ClasseGestionDonneesGenerales.prototype.init = function(eltstatique) {
	this.lesdonnees=new Array;
	this.setElementStatique(null);
	if(!eltstatique){
		this.definiElementStatique();
	}
}

ClasseGestionDonneesGenerales.prototype.getElementStatique = function() {
	return this.elementStatique;
}
ClasseGestionDonneesGenerales.prototype.setElementStatique = function(val) {
	this.elementStatique = val;
}

ClasseGestionDonneesGenerales.prototype.ajouteUneDonnee = function(id,valeur) {
	return this.lesdonnees[this.lesdonnees.length]=new ClasseDonneesGenerales(id,valeur);
}

ClasseGestionDonneesGenerales.prototype.ajouteUneDonneeTableau = function(id) {
	return this.lesdonnees[this.lesdonnees.length]=new ClasseDonneesGeneralesTableau(id);
}

ClasseGestionDonneesGenerales.prototype.getLesDonnees = function() {
	return this.lesdonnees;
}

ClasseGestionDonneesGenerales.prototype.getDonneeDid = function(id) {
	var elt=null;
	var bTrouve=false;
	var i=0;
	while((i<this.lesdonnees.length)&&(!bTrouve)){
		if(this.lesdonnees[i].getId()==id){
			elt=this.lesdonnees[i];
			bTrouve=true;
		}
		i++;
	}
	return elt;
}

ClasseGestionDonneesGenerales.prototype.getValeurDonneeDid = function(id) {
	var res=null;
	var elt=this.getDonneeDid(id);
	if(elt){
		res=elt.getValeur();
	}
	return res;
}

ClasseGestionDonneesGenerales.prototype.setValeurDonneeDid = function(id,valeur) {
	
	var elt=this.getDonneeDid(id);
	if(elt){
		//La valeur existe deja on change son contenu
		elt.setValeur(valeur);
	}
	else{
		this.ajouteUneDonnee(id,valeur);
	}
}

ClasseGestionDonneesGenerales.prototype.supprimeDonneeDid = function(id) {

	var tmpTableau=new Array();
	var i=0;
	while(i<this.lesdonnees.length){
		if(this.lesdonnees[i].getId()!=id){
			tmpTableau[tmpTableau.length]=this.lesdonnees[i];
		}
		i++;
	}
	this.lesdonnees=tmpTableau;
}


ClasseGestionDonneesGenerales.prototype.getValeurDonneeTableauDid = function(idtableau,id) {
	var res=null;
	var elt=this.getDonneeDid(idtableau);
	if(elt){
		var elttab=elt.getDonneeDuTableauDid(id);
		if(elttab){
			res=elttab.getValeur();
		}
	}
	return res;
}

ClasseGestionDonneesGenerales.prototype.setValeurDonneeTableauDid = function(idtableau,id,valeur) {
	
	var elt=this.getDonneeDid(idtableau);
	if(elt){
		//La valeur existe deja on change son contenu
		elt.setValeurDonneeTableauDid(id,valeur);
	}
	else{
		var elttab=this.ajouteUneDonneeTableau(idtableau);
		if(elttab){
			elttab.setValeurDonneeTableauDid(id,valeur);
		}
	}
}

ClasseGestionDonneesGenerales.prototype.supprimeDonneeTableauDid = function(idtableau,id) {
	var elt=this.getDonneeDid(idtableau);
	if(elt){
		elt.supprimeDonneeTableauDid(id);
	}
}

ClasseGestionDonneesGenerales.prototype.getDonneeTableauDid = function(idtableau) {
	
	var res=null;
	var elt=this.getDonneeDid(idtableau);
	if(elt){
		res=elt.getLeTableau();
	}
	return res;
}



ClasseGestionDonneesGenerales.prototype.rechercheElementStatique = function(win) {
var nEssais = 0;
while ((win.retourneElementStatique == null)&&(win.parent != null) && (win.parent != win)) { 
	nEssais ++; 
	if (nEssais > 500) { 
		return null;
	} 
	win = win.parent;
} 
if(win.retourneElementStatique){
	this.setElementStatique(win.retourneElementStatique());
}
}

ClasseGestionDonneesGenerales.prototype.definiElementStatique = function() {

if ((window.parent) && (window.parent != window)){ 
	this.rechercheElementStatique(window.parent); 
} 
if ((this.getElementStatique() == null) && (window.opener != null)){
	this.rechercheElementStatique(window.opener);
}

}


ClasseGestionDonneesGenerales.prototype.retourneValeurDonneeDid = function(id) {
	var res=null;
	if(this.getElementStatique()){
		res=this.getElementStatique().getValeurDonneeDid(id);
	}
	return res;
}

ClasseGestionDonneesGenerales.prototype.definiValeurDonneeDid = function(id,valeur) {
	if(this.getElementStatique()){
		this.getElementStatique().setValeurDonneeDid(id,valeur);
	}
}

ClasseGestionDonneesGenerales.prototype.effaceValeurDonneeDid = function(id) {
	if(this.getElementStatique()){
		this.getElementStatique().supprimeDonneeDid(id);
	}
}

ClasseGestionDonneesGenerales.prototype.retourneDonneeTableauDid = function(idtableau) {
	var res=null;
	if(this.getElementStatique()){
		res=this.getElementStatique().getDonneeTableauDid(idtableau);
	}
	return res;
}


ClasseGestionDonneesGenerales.prototype.retourneValeurDonneeTableauDid = function(idtableau,id) {
	var res=null;
	if(this.getElementStatique()){
		res=this.getElementStatique().getValeurDonneeTableauDid(idtableau,id);
	}
	return res;
}

ClasseGestionDonneesGenerales.prototype.definiValeurDonneeTableauDid = function(idtableau,id,valeur) {
	if(this.getElementStatique()){
		this.getElementStatique().setValeurDonneeTableauDid(idtableau,id,valeur);
	}
}

ClasseGestionDonneesGenerales.prototype.effaceDonneeTableauDid = function(idtableau,id) {
	if(this.getElementStatique()){
		res=this.getElementStatique().supprimeDonneeTableauDid(idtableau,id);
	}
}