function configurazione(plistaPage, pstepsPage, pcarrelloPage, plistaDiv, pstepsDiv, pcarrelloDiv) {
   this.modello = 0;
   this.motor = 0;
   this.optionals = new Object();
   this.optionals[0] = "false";
   this.steps = new Array();
   this.step = 0;
   this.dis_src = new Array();
   this.dis_tar = new Array();
   this.esc_src = new Array();
   this.esc_tar = new Array();
   this.test = new Array();
   this.riepilogoStatus = false;
   this.alertModello = "Scegliere un modello per continuare.";
   this.alertMotor = "Scegliere una motorizzazione per continuare.";
   this.listaPage = plistaPage;
   this.stepsPage = pstepsPage
   this.carrelloPage = pcarrelloPage;
   this.listaDiv = plistaDiv;
   this.stepsDiv = pstepsDiv;
   this.carrelloDiv = pcarrelloDiv;
   this.riepilogoPage = "cfg_riepilogo.php";
   this.riepilogoDiv = plistaDiv;
   this.utilsDiv = "utils";
   this.dxDiv = "destra";
   this.navDiv = "navigazione";
   this.infoDiv = "info";
   this.prevstepDiv = "prevstep";
   this.nextstepDiv = "nextstep";
   this.modsstepDiv = "modsstep";
   this.infoIMG = "info_img";
   this.menuMods ="#menu_modello img";
   
/*#############################################
## this.ini()
#############################################*/

   this.ini = function() {
	 this.refreshCookie();
	 caricaSezione(this.listaPage,"m=0",this.listaDiv);
	 caricaSezione(this.stepsPage,"",this.stepsDiv);
   }

/*#############################################
## this.setModello()
#############################################*/

   this.setModello = function(mod) {
     this.modello = mod;
	 this.motor = 0;
	 this.optionals = new Object();
	 this.optionals[0] = "false";
	 this.steps = new Array();
     this.step = 0;
	 this.refreshCookie();
	 caricaSezione(this.stepsPage,"",this.stepsDiv);
   }
   
   
/*#############################################
## this.setMotor()
#############################################*/
   
   this.setMotor = function(mot) {
     this.motor = mot;
   }
   
/*#############################################
## this.addOptional()
#############################################*/

   this.addOptional = function(id) {
	 if (id != null) {
		 //if ($(id).getProperty("checked") && this.optionals[id] == "true") 
		 //$(id).setProperty("checked", false)
		  thiside = false
		  thisname = $(id).getProperty("name");
		  radios = $$("input[type='radio']").getProperty("id");
		  
		  for(i=0; i<radios.length;i++) {
			name = $(radios[i]).getProperty("name");
			check = $(radios[i]).hasClass('default');
			if (name == thisname && radios[i] != id && check) {
				thiside = radios[i];
			}
		  }
		  
		  if (!thiside) { 
		    if ($(id).getProperty("checked") && this.optionals[id] == "true") {
		  	  $(id).setProperty("checked", false)
		    } 
		  }
	 }
	 if (id != null) {
		 if ($(id).hasClass('default')) 
		 $(id).setProperty("checked", true)
	 }
	 checkboxes = $$("input[type='checkbox']").getProperty("id");
	 radios = $$("input[type='radio']").getProperty("id");
	 values = new Array();
     values.merge(checkboxes);
	 values.merge(radios);
	 for (i=0;i<values.length;i++) {
	   if ($(values[i]) != null) {
	     thisval = $(values[i]).getValue();
	     index = values[i];
	     if (thisval) {
	       this.optionals[index] = "true";
	     } else {
		   this.optionals[index] = "false";  
	    }
	   }
	 }
     this.refreshCookie();
   }
   
/*#############################################
## this.refreshOptional()
#############################################*/

   this.refreshOptional = function(id) {
	 checkboxes = $$("input[type='checkbox']").getProperty("id");
	 radios = $$("input[type='radio']").getProperty("id");
	 values = new Array();
     values.merge(checkboxes);
	 values.merge(radios);
	 for (i=0;i<values.length;i++) {
	   if ($(values[i]) != null) {
	     thisval = $(values[i]).getValue();
	     index = values[i];
	     if (thisval) {
	       this.optionals[index] = "true";
	     } else {
		   this.optionals[index] = "false";  
	    }
	   }
	 }
     this.refreshCookie();
   }   
   
/*#############################################
## this.refreshCookie()
#############################################*/   

   this.refreshCookie = function() {
      myserial = Json.toString(this.optionals);
	  Cookie.set('atlantis_configuratore', this.modello+';'+this.motor+';'+myserial);
	  caricaSezione(this.carrelloPage,"",this.carrelloDiv);
   }

/*#############################################
## this.check()
#############################################*/

   this.check = function() {
     for(i=0;i<this.dis_src.length;i++) {
	   if ($(this.dis_src[i])) {
         if ($(this.dis_src[i]).getProperty('checked')) {
	       $(this.dis_tar[i]).setProperty('disabled', 'true');
	     } else {
	       $(this.dis_tar[i]).removeProperty('disabled');
	     }
	   }
	 }
   }

/*#############################################
## this.addDisable()
#############################################*/

   this.addDisable = function(v1,v2) {
     this.dis_src.include(v1)
	 this.dis_tar.include(v2)
   }

/*#############################################
## this.addEsc()
#############################################*/

   this.addEsc = function(v1,v2) {
     this.esc_src.include(v1)
	 this.esc_tar.include(v2)
   }

/*#############################################
## this.addStep()
#############################################*/

   this.addStep = function(v1) {
     this.steps.include(v1)
   }

/*#############################################
## this.next()
#############################################*/

   this.next = function() {
	 if (this.step == 0) {
		if (this.modello == 0) {
	      alert(this.alertModello);
		  return;
		}
		if (this.motor == 0) {
	      alert(this.alertMotor);
		  return;
		} 
	 }
	 //alert(this.step)
     if (this.step < this.steps.length) {
	   if (this.modello != 0 && this.motor) {
		   this.setLayout("accessori");
	   }
	   /*if(!this.optionals[1]) {
		 alert(this.optionals[1]);
	   }*/
	   this.step++;  
       caricaSezione(this.listaPage,"m=1&l="+this.steps[this.step-1],this.listaDiv);
	   caricaSezione(this.stepsPage,"s="+this.steps[this.step-1],this.stepsDiv);
	 } else {
	   this.step = this.steps.length+1;
	   this.riepilogo();
	 }
   }
   
/*#############################################
## this.prev()
#############################################*/   

   this.prev = function() {
	 //alert(this.step)
     if (!(this.step-1 < 1)) {
	   if (this.riepilogoStatus) {
		 this.riepilogoStatus = false;
		 this.setLayout("accessori");
	   }
	   this.step--;
       caricaSezione(this.listaPage,"m=1&l="+this.steps[this.step-1],this.listaDiv);
	   caricaSezione(this.stepsPage,"s="+this.steps[this.step-1],this.stepsDiv);
	 } else {
       this.resetModello();
	 }
   }

/*#############################################
## this.resetModello()
#############################################*/

    this.resetModello = function() {
	   this.setLayout("modello");
	   caricaSezione(this.listaPage,"l=0",this.listaDiv);
	   this.motor=0;
	   this.step=0;
	   this.optionals = new Object();
       this.optionals[0] = "false";
	   this.setModello(0);
	   caricaSezione(this.stepsPage,"",this.stepsDiv);
   }
   
/*#############################################
## this.riepilogo()
#############################################*/   
   
   this.riepilogo = function() {
	  this.riepilogoStatus = true;
	  this.setLayout("riepilogo"); 
	  caricaSezione(this.stepsPage,"s=riepilogo",this.stepsDiv);
      caricaSezione(this.riepilogoPage,"",this.riepilogoDiv);
   }

/*#############################################
## this.setMotorChoise()
#############################################*/

   this.setMotorChoise = function() {
	  var self = this;
	  if ($$('input[name=motorchoise]')) {
		$$('input[name=motorchoise]').addEvent('click', function(){
	      self.setMotor(this.value);
		});
	  }
   }

/*#############################################
## this.setLayout()
#############################################*/

   this.setLayout = function (thelay){
     
	 if (thelay == "accessori") {
	   $(this.listaDiv).setStyle('width', '470px');
	   $(this.dxDiv).setStyle('width', '406px');
	   $(this.carrelloDiv).setStyle('display', 'block');
	   $(this.utilsDiv).setStyle('display', 'none');
	   $(this.infoDiv).setStyle('display', 'block');
	   $(this.infoIMG).setProperty('src', 'cfg_img/info.jpg');
	   $(this.prevstepDiv).setStyle('display', 'block');
	   $(this.modsstepDiv).setStyle('display', 'block');
	   $(this.nextstepDiv).setStyle('display', 'inline');
     }
	 
	 if (thelay == "modello") {
	   $(this.carrelloDiv).setStyle('display', 'block');
	   $(this.listaDiv).setStyle('width', '530px');
	   $(this.utilsDiv).setStyle('display', 'none');
	   $(this.dxDiv).setStyle('width', '313px');
	   $(this.infoDiv).setStyle('display', 'none');
	   $(this.prevstepDiv).setStyle('display', 'none');
	   $(this.nextstepDiv).setStyle('display', 'inline');
	   $(this.modsstepDiv).setStyle('display', 'none');
	   $$(this.menuMods).addEvent('mouseover', function(e) {
								e.effect('opacity').start(100,50);
								});
     }
	 
	 if (thelay == "riepilogo") {
	   $(this.carrelloDiv).setStyle('display', 'none');
	   $(this.utilsDiv).setStyle('display', 'block');
	   $(this.listaDiv).setStyle('width', '570px');
	   $(this.dxDiv).setStyle('width', '308px');
	   $(this.nextstepDiv).setStyle('display', 'none');
	   $(this.infoIMG).setProperty('src', 'cfg_img/info_2.jpg'); 
     }
   }

/*#############################################
## this.stampa()
#############################################*/

   this.stampa = function() {
	  var myPrint = window.open("cfg_stampa.php", "windowPrint",
				  "height=500, width=600, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no");
   }

/*#############################################
## Fine classe
#############################################*/   
   
   this.ini();
}

// Fine Classe Config

/*#############################################
## caricaSezione()
#############################################*/ 
function caricaSezione (url, querystring, target){
	/*var myCall =new Ajax(url, {
		data:querystring,
		method: 'get',
		update: target,
		evalScripts:true
	});
	myCall.request();*/
	
   var myAjax = new Ajax(url, {
	  method: 'get',
	  data:querystring,
	  update: $(target),
	  evalScripts:true
   });
 
  if (window.ie) myAjax.setHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
  myAjax.request();   //var myXhr = new XHR({method: 'get', onSuccess:function(response){document.getElementById(target).innerHTML = response; alert(response)}});
   //myXhr.send(url, querystring);
}

/*#############################################
## cntrl_over()
#############################################*/ 

function cntrl_over(nome) {
	max_i=2;
	if (document.getElementById(nome).style.display=='block'){
			for (i=1; i<max_i; i++) {
				document.getElementById(i).style.display='none';
			 }
		} else {
			 for (i=1; i<max_i; i++) {
				 nome_int=nome-0;
				 if (nome_int==i){
					document.getElementById(nome).style.display='block';
				 } else {
					document.getElementById(i).style.display='none';
				}
			} 
		}

	}

/*#############################################
## Event domready
#############################################*/

window.addEvent('domready', function(){
  if (window.myapp === undefined) {
    myapp = new configurazione("cfg_lista.php","cfg_steps.php","cfg_carrello.php","lista","steps","carrello");
    $("nextstep").addEvent('click', function(e) {myapp.next()} );
    $("prevstep").addEvent('click', function(e) {myapp.prev()} );
    $("modsstep").addEvent('click', function(e) {myapp.resetModello()} );
    $("ut_invia").addEvent('click', function(e) {cntrl_over('1')} );
    $("ut_stampa").addEvent('click', function(e) {myapp.stampa()} );
  }
// Chiusura
});
