
var form1=new modform();
form1.sel=['formae_organisme.org_region','formae_organisme.org_type','formae_formation.form_type','formae_formation.form_niveau_bac','formae_result'];
form1.ajax= new Array();
form1.FilePL= ['f/formation'];
form1.loader='notification';

function getModif(id_sel) {
  form1.ModifSelect(id_sel,0);
}

function modform() {

  this.reset= function () {
    if (this.ajax.length>0) {
      this.ajax.length=0;
      this.ModifSelect();
    } else {
      for (var i = 0; i < this.sel.length; i++) {
	var xxCode =new getObj(this.sel[i]);
	if (xxCode.obj.value) { this.ModifSelect(); break }
      }
    }
  }

  this.ModifSelect= function(id_sel,xl) {
	    var url_param="ajax=ok&";

	    if (id_sel) {
	      var sel=new getObj(id_sel);
	      var selValue = sel.obj.options[sel.obj.selectedIndex].value;
	    
	      var k=0;
	      for (var i = 0; i < this.ajax.length; i++) {
		var xxCode=new getObj(this.ajax[i]);
		var xxCodeValue=xxCode.obj.value;
		if (xxCodeValue) { url_param+=this.ajax[i]+"="+xxCodeValue+"&"; }	
		if (this.ajax[i] == id_sel) {
		  k=1; 
		  this.ajax.length=i+1; 
		  if(selValue.length==0) { this.ajax.length=i; }
		  break; 
		}
	      }  
	      if (k == 0) { 
		this.ajax.push(id_sel);
		url_param+=id_sel+"="+sel.obj.value+"&"; 
	      }
	    }

	    var xxloader=new getObj(this.loader);
	    this.counter=0;
	    for (var i = 0; i < this.sel.length; i++) {
	      var id_next=this.sel[i];
	      if (this.egrep(id_next)) { continue }

	      this.counter++;

	      var xxCode =new getObj(id_next);

	      if (xxCode.obj.options) {
		xxCode.obj.options.length = 0; 
	      }
	      var xx = new sack();
	      xx.method = 'GET';
	      xx.requestFile = "/bin/" + this.FilePL[xl] + ".pl" ;
	      xx.onCompletion = this.OuterFunction(xx,id_next,xxloader);
	      xx.runAJAX(url_param+"type="+id_next);          // Execute AJAX function
	    }
	    if (this.counter) {
	      xxloader.style.display = 'block'; 
	    }
	  }
  this.OuterFunction= function(index,id_next,xxloader) {
    var obj=this;
    return function (){
      createProd(obj,index,id_next,xxloader);
    }
  }
  this.egrep= function(id_next) {
    for (var k = 0; k < this.ajax.length; k++) {
      if (id_next == this.ajax[k]) { return 1 }
    }	    
    return 0;
  }
}

function createProd(xthis,index,id_select,loader) {
  var xx = new getObj(id_select);
  var obj=xx.obj;
  eval(index.response);
  xthis.counter--;
  if (! xthis.counter) {
       loader.style.display = 'none'; 
  }
}

