
	
var Class_one = new Class({
    Implements:[Options,Events],
    options: {
        contenuName : null,
        contenu : null,
        page : "index.php",
        typeChangement : "change",
        passageVariable : "moi",
        encodage : "utf-8",
        destination : "id0",
        typeReception : "json",
        children:null,
        classe: 'ici',
        parametres: ['id','texte'],
        typePassage: "GET"
    },
	
    initialize : function(options){
        if(!options.children){
            var d = new Date();
            options.children=[
            {
                contenuName:options.contenuName,
                contenu:options.contenu+'_'+d.getTime(),
                page : options.page?options.page:this.options.page,
                typeChangement : options.typeChangement?options.typeChangement:this.options.typeChangement,
                passageVariable : options.passageVariable?options.passageVariable:this.options.passageVariable,
                encodage : options.encodage?options.encodage:this.options.encodage,
                destination : options.destination+'_'+d.getTime(),
                typeReception : options.typeReception?options.typeReception:this.options.typeReception,
                classe : options.classe?options.classe:this.options.classe,
				parametres : options.parametres?options.parametres:this.options.parametres,
                typePassage: options.typePassage?options.typePassage:this.options.typePassage
                }];
			
			
        }
	
        this.setOptions(options);
        var myFirstElement  = new Element('div', {
            id: this.options.destination
            });
        myFirstElement.inject("formulaire");
			
        this.select=$(this.options.contenu);
        this.select.addEvent(this.options.typeChangement,function(event){
            this.gestionChange();
        }.bind(this));
    },
	
    bouclevide : function(ed){
        $('formulaire').getElements("div[id^="+ed.destination+"_]").destroy();

    },
	
    generationselect : function(acharger,format){
        var acharger2='';
        switch (format)
        {
            case 'json':
                var i=0;
                var acharger=JSON.decode(acharger);
                acharger.each(function(item,index) {
                    value="item."+this.options.parametres[0];
                    value1="item."+this.options.parametres[1];
                    acharger2+='<option value="'+eval(value)+'">'+eval(value1)+'</option>';
                }.bind(this));
                break;
		
            case 'xml':
		
                break;
        }
        return acharger2;
    },
    chargement_page : function(acharger){
        this.bouclevide(this.options);
        if(this.options.typeReception!="normal"){
            acharger=this.generationselect(acharger,this.options.typeReception);
        }
        acharger='<select id="'+this.options.children[0].contenu+'" name="'+this.options.children[0].contenuName+'" class="'+this.options.classe+'">'+acharger+'</select>';
        $(this.options.destination).set('html',acharger);
        var demo_1 = new Class_one(this.options.children[0]);

    },
	
    gestionChange : function(variable){
        this.fireEvent("onGestion");
        var req = new Request({
            method: this.options.typePassage,
            url: this.options.page,
            data: this.options.passageVariable+'='+this.select.get('value'),
            encoding : this.options.encodage,
            onRequest: function() {
                this.fireEvent("onChargement");
                $(this.options.destination).set('html','<img src="load.gif">');
            }.bind(this),
            onComplete: function (response) {
                this.fireEvent("onCharger");
                if(response==""){
                    $(this.options.destination).set('html','');
                    return false;
                }
                this.chargement_page(response);
            }.bind(this)
        }).send();
    }
	
	
});
