var ConfiguratorCarsCompare = new Class(
{
	/*************************************************************************************************************************
	 * Variable
	 *************************************************************************************************************************/
	nb_config: 0,
	nb_car: 0,
	compare: {},
	selected: {
		body: '',
		version: '',
		motor: '',
		box: ''
	},
	selectedId: {
		body: '',
		version: '',
		motor: '',
		box: ''
	},
	data: {
		model: '',
		body: '',
		version: '',
		motor: '',
		box: ''
	},
	show_config2: false,
	show_config3: false,
	showComplete_config3: false,
	storeXml: '',
	defaultPage: 'page_equipments',
	caracPage: 'page_caracs',
	clone: '',
	last: '',
	
	/*************************************************************************************************************************
	 * Constructor
	 *************************************************************************************************************************/
	initialize: function()
	{
		var i;
		for ( i=0;i<3;i++ )
		{
			this.selected[i] = {
					body: '',
					version: '',
					motor: '',
					box: ''
				};
			this.selectedId[i] = {
					body: '',
					version: '',
					motor: '',
					box: ''
				};
		}
		
		this.recup_Infos();
		this.load();
	},
	
	
	
	/*************************************************************************************************************************
	 * Evenements
	 *************************************************************************************************************************/
	load: function()
	{
		//evenement pour les deplis de menu
		$$('.Inputs').each(function(menu)
		{
			menu.getChildren().each(function(el){
				el.addEvents({
					'mouseenter':	function(){},
					'click'		:	this.preLoadingInfos.pass([el,menu], this)
				});
			}.bind(this));
		}.bind(this));
		
		$('chkTechnical').addEvent('click', this.slide_caracs.pass([], this));
		$('chkStandard').addEvent('click', this.slide_std.pass([], this));
		$('chkOption').addEvent('click', this.slide_options.pass([], this));
		$('chkDifferenceOnly').addEvent('click', this.slide_diff.pass([], this));
		
		$('chkTechnical').checked = true;
		$('chkStandard').checked = true;
		$('chkOption').checked = true;
		$('chkDifferenceOnly').checked = false;
		
		$('printCompare').addEvent('mouseenter', this.printCompare.pass([], this));
		
		$('DarkOptions').setStyle('display','none');
		$('WhiteGrayOptions').setStyle('display','none');
		$('GrayOptions').setStyle('display','none');
	},
	
	
	
	/*************************************************************************************************************************
	 * Load infos
	 *************************************************************************************************************************/
	recup_Infos: function()
	{
		//on charges les infos des vehicules a comparer
		this.compare = new carCompare_Infos();
		
		//preselect body
		this.selectedId[0] = {
			body: this.compare.defaut_body,
			version: this.compare.defaut_version,
			motor: '',
			box: ''
		};
		this.selected[0] = {
			body: this.compare.defaut_body_name,
			version: this.compare.defaut_version_name,
			motor: '',
			box: ''
		};
		$('firstConfig_GrBodyStyle_Label').getElement('.mod').set('html',this.compare.defaut_body_name);
		$('firstConfig_GrCommercialName_Label').getElement('.mod').set('html',this.compare.trad_finition);
		
		if ( this.compare.defaut_version_name != undefined && this.compare.defaut_version_name != '' )
		{
			$('firstConfig_GrCommercialName_Label').getElement('.mod').set('html',this.compare.defaut_version_name);
			$('firstConfig_GrEngine_Label').getElement('.mod').set('html',this.compare.trad_motorisation);
		}
	},
	
	/*************************************************************************************************************************
	 * Functions
	 *************************************************************************************************************************/
	 
	 
	 
	/*************************************************************************************************************************
	 *choix de l'utilisateur
	 *************************************************************************************************************************/
	 //envoi des variables d'impression
	printCompare: function()
	{
		var url='';
		var params1='',params2='',params3='';
		var show='';
		
		params1 = this.selectedId[0].body + '_' + this.selectedId[0].version + '_' + this.selectedId[0].motor + '_' + this.selectedId[0].box;
		params2 = this.selectedId[1].body + '_' + this.selectedId[1].version + '_' + this.selectedId[1].motor + '_' + this.selectedId[1].box;
		params3 = this.selectedId[2].body + '_' + this.selectedId[2].version + '_' + this.selectedId[2].motor + '_' + this.selectedId[2].box;
		show = $('chkStandard').checked + '_' + $('chkTechnical').checked + '_' + $('chkOption').checked + '_' + $('chkDifferenceOnly').checked;
		
		url = '/index.php?template=new_cfg/range/PrintCompareVersions&v1='+params1+'&v2='+params2+'&v3='+params3+'&show='+show;
		
		$('printCompare').setProperty('href',url);
	},
	 
	 
	//lorsque un choix a ete modifier on retire les informations et on met a jour les infos
	hide_config: function(numero_cfg)
	{
		if ( numero_cfg == 1 || numero_cfg == 2 )
		{
			//visibility des prix et du boutton configurer
			$('cfg_car'+numero_cfg).setStyle('visibility','hidden');
			$('cfg_car'+numero_cfg).setProperty('href','#');
			$('priceLabel'+numero_cfg).set('html','');
			// remise en style vide du tableau
			var tbody = $('carCompareTable').getFirst();
				tbody.getChildren().each(function(el)
				{
					if ( !el.hasClass('RowStandard') )
					{
						if ( numero_cfg == 1 )
						{
							el.getFirst().getNext().getNext().set('html','');
							el.getFirst().getNext().getNext().set('class','CellWhiteGrayStandard');
						}
						else
						{
							el.getLast().set('html','');
							el.getLast().set('class','CellGrayStandard');
						}
					}
				}.bind(this));
			if ( numero_cfg == 1 )
			{
				var next_cfg = 2;
				//visibility des prix et du boutton configurer
				$('cfg_car'+next_cfg).setStyle('visibility','hidden');
				$('cfg_car'+next_cfg).setProperty('href','#');
				$('priceLabel'+next_cfg).set('html','');
				// remise en style vide du tableau
				var tbody = $('carCompareTable').getFirst();
					tbody.getChildren().each(function(el)
					{
						if ( !el.hasClass('RowStandard') )
						{
							if ( next_cfg == 1 )
							{
								el.getFirst().getNext().getNext().set('html','');
								el.getFirst().getNext().getNext().set('class','CellWhiteGrayStandard');
							}
							else
							{
								el.getLast().set('html','');
								el.getLast().set('class','CellGrayStandard');
							}
						}
					}.bind(this));
				//remise a nul les valeur selectionne
				$('thirdConfig').getElements('.mod').set('html','&nbsp;');
				//reset du tableau de data
				this.selectedId[next_cfg] = {
					body: '',
					version: '',
					motor: '',
					box: ''
				};
				//mis a jour des infos de la comparaison
				if ( this.nb_config > numero_cfg )
					this.comparer();
				//mis a jour du nombre de config
				this.nb_config = 1;
			}
			else
			{
				//mis a jour des infos de la comparaison
				if ( this.nb_config > numero_cfg )
					this.comparer();
				//mis a jour du nombre de config
				this.nb_config = 2;
			}
		}
		else
		{
			//reset all config 2 et 3
			$('carCompareTable').getFirst().set('html','');
			$('printCompare').setStyle('visibility','hidden');
			
			$('priceLabel0').set('html','');
			$('cfg_car0').setStyle('visibility','hidden');
			$('priceLabel1').set('html','');
			$('cfg_car1').setStyle('visibility','hidden');
			$('priceLabel2').set('html','');
			$('cfg_car2').setStyle('visibility','hidden');
			
			this.selected[1] = {
					body: '',
					version: '',
					motor: '',
					box: ''
				};
			this.selectedId[1] = {
					body: '',
					version: '',
					motor: '',
					box: ''
				};
				
			this.selected[2] = {
				body: '',
				version: '',
				motor: '',
				box: ''
			};
			this.selectedId[2] = {
					body: '',
					version: '',
					motor: '',
					box: ''
			};
			
			//evite le bug de IE6
			$('secondConfig').getElements('.mod').set('html','&nbsp;');
			$('thirdConfig').getElements('.mod').set('html','&nbsp;');
		}
	},
	 
	//selection du silhouette
	choixBody: function(el,menu,numero_cfg,value)
	{
		if ( value != this.selected[numero_cfg].body )//si choix different
		{
			//on supprime les selections imbriques
			menu.getElements('.mod').each(function(choix)
			{
				choix.set('html','');
			}.bind(this));
			$$('.DropDownLabel').set('html','');
			//on met a jour la selection
			this.selected[numero_cfg] = {
					body: '',
					version: '',
					motor: '',
					box: ''
				};
			this.selectedId[numero_cfg] = {
					body: '',
					version: '',
					motor: '',
					box: ''
				};
			this.hide_config(numero_cfg);
			//montrer le choix imbrique suivant
			if ( value != this.compare.trad_silhouette )
			{
				this.selected[numero_cfg].body = value;
				this.selectedId[numero_cfg].body = this.compare.infos.body[value].id;
				el.getNext().getElement('.mod').set('html',this.compare.trad_finition);
				
				//auto-select next element
				var nb_element = 0;
				var onlyOneBox = '';
				$each(this.compare.infos.body[this.selected[numero_cfg].body].version, function(v, k)
				{
					if ( v.nom != '' )
					{
						nb_element++;
						onlyOneBox = v.nom;
					}
				}.bind(this));
				if ( nb_element == 1 )
					this.choixVersion(el.getNext(),menu,numero_cfg,onlyOneBox);
			}
		}
		el.getElement('.mod').set('html',value);
		this.clone.dispose();
	},
	
	//selection de la finition
	choixVersion: function(el,menu,numero_cfg,value)
	{
		if ( value != this.selected[numero_cfg].version )//si choix different
		{
			//on supprime les selections imbriques
			el.getNext().getElement('.mod').set('html','&nbsp;');
			el.getNext().getNext().getElement('.mod').set('html','&nbsp;');
			el.getNext().getElement('.DropDownLabel').set('html','');
			el.getNext().getNext().getElement('.DropDownLabel').set('html','');
			//on met a jour la selection
			this.selected[numero_cfg] = {
					body: this.selected[numero_cfg].body,
					version: '',
					motor: '',
					box: ''
				};
			this.selectedId[numero_cfg] = {
					body: this.selectedId[numero_cfg].body,
					version: '',
					motor: '',
					box: ''
				};
			this.hide_config(numero_cfg);
			//montrer le choix imbrique suivant
			if ( value != this.compare.trad_finition )
			{
				this.selected[numero_cfg].version = value;
				this.selectedId[numero_cfg].version = this.compare.infos.body[this.selected[numero_cfg].body].version[value].id;
				el.getNext().getElement('.mod').set('html',this.compare.trad_motorisation);
				
				//auto-select next element
				var nb_element = 0;
				var onlyOneBox = '';
				$each(this.compare.infos.body[this.selected[numero_cfg].body].version[this.selected[numero_cfg].version].motor, function(v, k)
				{
					if ( v.nom != '' )
					{
						nb_element++;
						onlyOneBox = v.nom;
					}
				}.bind(this));
				if ( nb_element == 1 )
					this.choixMotor(el.getNext(),menu,numero_cfg,onlyOneBox);
			}
		}
		el.getElement('.mod').set('html',value);
		this.clone.dispose();
	},
	
	//selection du moteur
	choixMotor: function(el,menu,numero_cfg,value)
	{
		if ( value != this.selected[numero_cfg].motor )//si choix different
		{
			//on supprime les selections imbriques
			el.getNext().getElement('.mod').set('html','&nbsp;');
			el.getNext().getElement('.DropDownLabel').set('html','');
			//on met a jour la selection
			this.selected[numero_cfg] = {
					body: this.selected[numero_cfg].body,
					version: this.selected[numero_cfg].version,
					motor: '',
					box: ''
				};
			this.selectedId[numero_cfg] = {
					body: this.selectedId[numero_cfg].body,
					version: this.selectedId[numero_cfg].version,
					motor: '',
					box: ''
				};
			this.hide_config(numero_cfg);
			//montrer le choix imbrique suivant
			if ( value != this.compare.trad_motorisation )
			{
				this.selected[numero_cfg].motor = value;
				this.selectedId[numero_cfg].motor = this.compare.infos.body[this.selected[numero_cfg].body].version[this.selected[numero_cfg].version].motor[value].id;
				
				//si le pays veut pas de box
				if ( this.compare.showBox == 'false' )
				{
					//code pour montrer les infos de la config choisi
					this.nb_config = numero_cfg+1;
					//evite le bug daffichage et de fonctionnement pour le deploy des box
					this.selected[numero_cfg].box = 'none';
					this.selectedId[numero_cfg].box = 'none'; 
					//ajax
					this.completeChoice(el,menu,numero_cfg);
					if ( numero_cfg == 0 )
						$('secondConfig_GrBodyStyle_Label').getElement('.mod').set('html',this.compare.trad_silhouette);
					if ( numero_cfg == 1)
						$('thirdConfig_GrBodyStyle_Label').getElement('.mod').set('html',this.compare.trad_silhouette);
				}
				else
				{
					el.getNext().getElement('.mod').set('html',this.compare.trad_boite);
					//auto-select next element
					var nb_element = 0;
					var onlyOneBox = '';
					$each(this.compare.infos.body[this.selected[numero_cfg].body].version[this.selected[numero_cfg].version].motor[this.selected[numero_cfg].motor].box, function(v, k)
					{
						if ( v.nom != '' )
						{
							nb_element++;
							onlyOneBox = v.nom;
						}
					}.bind(this));
					if ( nb_element == 1 )
						this.choixBox(el.getNext(),menu,numero_cfg,onlyOneBox);
				}
			}
		}
		el.getElement('.mod').set('html',value);
		this.clone.dispose();
	},
	
	//selection de la boite de vitesse
	choixBox: function(el,menu,numero_cfg,value)
	{
		if ( value != this.compare.trad_boite )//si choix different
		{
			if ( this.selected[numero_cfg].box != value )//evite le rechargement inutile en ajax
			{
				this.selected[numero_cfg].box = value;
				this.selectedId[numero_cfg].box = this.compare.infos.body[this.selected[numero_cfg].body].version[this.selected[numero_cfg].version].motor[this.selected[numero_cfg].motor].box[value].id;
				//code pour montrer les infos de la config choisi
				this.nb_config = numero_cfg+1;
				this.completeChoice(el,menu,numero_cfg);
				if ( numero_cfg == 0)
					$('secondConfig_GrBodyStyle_Label').getElement('.mod').set('html',this.compare.trad_silhouette);
				if ( numero_cfg == 1)
					$('thirdConfig_GrBodyStyle_Label').getElement('.mod').set('html',this.compare.trad_silhouette);
			}
		}
		else
		{
			this.selected[numero_cfg] = {
					body: this.selected[numero_cfg].body,
					version: this.selected[numero_cfg].version,
					motor: this.selected[numero_cfg].motor,
					box: ''
				};
			this.selectedId[numero_cfg] = {
					body: this.selectedId[numero_cfg].body,
					version: this.selectedId[numero_cfg].version,
					motor: this.selectedId[numero_cfg].motor,
					box: ''
				};
			this.hide_config(numero_cfg);
			this.nb_config = numero_cfg;
		}
		el.getElement('.mod').set('html',value);
		this.clone.dispose();
	},
	 
	/*************************************************************************************************************************
	 *Preload
	 *************************************************************************************************************************/
	//loading body
	preLoading_body: function(el,menu,numero_cfg)
	{	
		var ul = new Element('ul');
			var li = new Element('li');
				var p = new Element('a');
					p.set('html',this.compare.trad_silhouette);
					p.setProperty('href' , '#');
				li.appendChild(p);
				li.addEvent('click', this.choixBody.pass([el,menu,numero_cfg,this.compare.trad_silhouette], this));
			ul.appendChild(li);
			//on boucle sur les body
			$each(this.compare.infos.body, function(v, k)
			{
				var li = new Element('li');
					var p = new Element('a');
						p.set('html',v.nom);
						p.setProperty('href' , '#');
					li.appendChild(p);
					li.addEvent('click', this.choixBody.pass([el,menu,numero_cfg,v.nom], this));
					if ( v.nom == this.selected[numero_cfg].body )
						li.set('class','checked');
				ul.appendChild(li);
			}.bind(this));
		var deploy = el.getElement('.DropDownLabel');
		var ul2 = ul.clone(true,true);
		deploy.set('html','');
		deploy.appendChild(ul2);
		//clone
		$('deliamask').getNext().set('html','');
		$('deliamask').getNext().appendChild(ul);
	},
	
	//loading version
	preLoading_version: function(el,menu,numero_cfg)
	{
		if ( this.selected[numero_cfg].body != '' && this.selected[numero_cfg].body != undefined )
		{
			var ul = new Element('ul');
				var li = new Element('li');
					var p = new Element('a');
						p.set('html',this.compare.trad_finition);
						p.setProperty('href' , '#');
					li.appendChild(p);
					li.addEvent('click', this.choixVersion.pass([el,menu,numero_cfg,this.compare.trad_finition], this));
				ul.appendChild(li);
				//on boucle sur les body
				$each(this.compare.infos.body[this.selected[numero_cfg].body].version, function(v, k)
				{
					var li = new Element('li');
						var p = new Element('a');
							p.set('html',v.nom);
							p.setProperty('href' , '#');
						li.appendChild(p);
						li.addEvent('click', this.choixVersion.pass([el,menu,numero_cfg,v.nom], this));
						if ( v.nom == this.selected[numero_cfg].version )
							li.set('class','checked');
					ul.appendChild(li);
				}.bind(this));
			var deploy = el.getElement('.DropDownLabel');
			var ul2 = ul.clone(true,true);
			deploy.set('html','');
			deploy.appendChild(ul2);
			//clone
			$('deliamask').getNext().set('html','');
			$('deliamask').getNext().appendChild(ul);
		}
	},
	
	//loading motor
	preLoading_motor: function(el,menu,numero_cfg)
	{
		if ( this.selected[numero_cfg].version != '' && this.selected[numero_cfg].version != undefined )
		{
			var ul = new Element('ul');
				var li = new Element('li');
					var p = new Element('a');
						p.set('html',this.compare.trad_motorisation);
						p.setProperty('href' , '#');
					li.appendChild(p);
					li.addEvent('click', this.choixMotor.pass([el,menu,numero_cfg,this.compare.trad_motorisation], this));
				ul.appendChild(li);
				//on boucle sur les body
				$each(this.compare.infos.body[this.selected[numero_cfg].body].version[this.selected[numero_cfg].version].motor, function(v, k)
				{
					var li = new Element('li');
						var p = new Element('a');
							p.set('html',v.nom);
							p.setProperty('href' , '#');
						li.appendChild(p);
						li.addEvent('click', this.choixMotor.pass([el,menu,numero_cfg,v.nom], this));
						if ( v.nom == this.selected[numero_cfg].motor )
							li.set('class','checked');
					ul.appendChild(li);
				}.bind(this));
			var deploy = el.getElement('.DropDownLabel');
			var ul2 = ul.clone(true,true);
			deploy.set('html','');
			deploy.appendChild(ul2);
			//clone
			$('deliamask').getNext().set('html','');
			$('deliamask').getNext().appendChild(ul);
		}
	},
	
	//loading box
	preLoading_box: function(el,menu,numero_cfg)
	{
		if ( this.selected[numero_cfg].motor != '' && this.selected[numero_cfg].motor != undefined )
		{
			var ul = new Element('ul');
				var li = new Element('li');
					var p = new Element('a');
						p.set('html',this.compare.trad_boite);
						p.setProperty('href' , '#');
					li.appendChild(p);
					li.addEvent('click', this.choixBox.pass([el,menu,numero_cfg,this.compare.trad_boite], this));
				ul.appendChild(li);
				//on boucle sur les body
				$each(this.compare.infos.body[this.selected[numero_cfg].body].version[this.selected[numero_cfg].version].motor[this.selected[numero_cfg].motor].box, function(v, k)
				{
					var li = new Element('li');
						var p = new Element('a');
							p.set('html',v.nom);
							p.setProperty('href' , '#');
						li.appendChild(p);
						li.addEvent('click', this.choixBox.pass([el,menu,numero_cfg,v.nom], this));
						if ( v.nom == this.selected[numero_cfg].box )
							li.set('class','checked');
					ul.appendChild(li);
				}.bind(this));
			var deploy = el.getElement('.DropDownLabel');
			var ul2 = ul.clone(true,true);
			deploy.set('html','');
			deploy.appendChild(ul2);
			//clone
			$('deliamask').getNext().set('html','');
			$('deliamask').getNext().appendChild(ul);
		}
	},
	
	//on precharge les menus
	preLoadingInfos: function(el,menu)
	{
		if ( !$('deliamask').getNext().hasClass('DropDownLabel') || this.last != el )//eviter le bug de rechargement
		{
			var element_cat;
			
			var myDropDownLabel = el.getElement('.DropDownLabel');
				myDropDownLabel.setStyle('display','block');
				//methode clone
				var map = el.getCoordinates();
				if ( this.clone != '' && this.clone != undefined )
				{
					this.clone.dispose();
				}
				this.clone = myDropDownLabel.clone(true,true).injectAfter('deliamask');
				this.clone.set({
					'styles': {
						'z-index': '999',
						'position': 'absolute',
						'display': 'block',
						'top': map.top+22,
						'left': map.left
				}
				});
				myDropDownLabel.setStyle('display','none');
				this.clone.setStyle('display','block');
			
			//on regarde dans quel config on est
			if ( menu.getParent().id == 'firstConfig')
			{
				if ( el.id == 'firstConfig_GrBodyStyle_Label' )
				{
					this.preLoading_body(el,menu,0);
					element_cat = 1;
				}
				else if ( el.id == 'firstConfig_GrCommercialName_Label' )
				{
					this.preLoading_version(el,menu,0);
					element_cat = 2;
				}
				else if ( el.id == 'firstConfig_GrEngine_Label' )
				{
					this.preLoading_motor(el,menu,0);
					element_cat = 3;
				}
				else if ( el.id == 'firstConfig_GrTransmissionType_Label' )
				{
					this.preLoading_box(el,menu,0);
					element_cat = 4;
				}
			}
			else if ( menu.getParent().id == 'secondConfig' && this.selected[0].box != '' )
			{
				if ( el.id == 'secondConfig_GrBodyStyle_Label' )
				{
					this.preLoading_body(el,menu,1);
					element_cat = 1;
				}
				else if ( el.id == 'secondConfig_GrCommercialName_Label' )
				{
					this.preLoading_version(el,menu,1);
					element_cat = 2;
				}
				else if ( el.id == 'secondConfig_GrEngine_Label' )
				{
					this.preLoading_motor(el,menu,1);
					element_cat = 3;
				}
				else if ( el.id == 'secondConfig_GrTransmissionType_Label' )
				{
					this.preLoading_box(el,menu,1);
					element_cat = 4;
				}
			}
			else if ( menu.getParent().id == 'thirdConfig' && this.selected[1].box != '' )
			{
				if ( el.id == 'thirdConfig_GrBodyStyle_Label' )
				{
					this.preLoading_body(el,menu,2);
					element_cat = 1;
				}
				else if ( el.id == 'thirdConfig_GrCommercialName_Label' )
				{
					this.preLoading_version(el,menu,2);
					element_cat = 2;
				}
				else if ( el.id == 'thirdConfig_GrEngine_Label' )
				{
					this.preLoading_motor(el,menu,2);
					element_cat = 3;
				}
				else if ( el.id == 'thirdConfig_GrTransmissionType_Label' )
				{
					this.preLoading_box(el,menu,2);
					element_cat = 4;
				}
			}
		}
		else
		{
			this.clone.dispose();
		}
		//on affiche ou pas le deploy
		this.deployMenu(el,menu,element_cat);
		// last
		this.last = el;
	},
	
	/*************************************************************************************************************************
	 *deploy on/off
	 *************************************************************************************************************************/
	//on deploy le menu
	deployMenu: function(el,menu,element_cat)
	{
		if ( el.getElement('.DropDownLabel').getStyle('display') == 'none' && el.getLast().getFirst() != undefined )
		{
			$$('.DropDownLabel').setStyle('display','none');
			if ( $('deliamask').getNext().hasClass('DropDownLabel') )
				$('deliamask').getNext().setStyle('display','block');
		}
		else
		{
			$$('.DropDownLabel').setStyle('display','none');
		}
	},
	
	/*************************************************************************************************************************
	 * choix termine
	 *************************************************************************************************************************/
	completeChoice: function(el,menu,numero_cfg)
	{
		//modif graphique
		$('printCompare').setStyle('visibility','visible');
		$('DarkOptions').setStyle('display','block');
		$('WhiteGrayOptions').setStyle('display','block');
		$('GrayOptions').setStyle('display','block');
		this.completeChoice_changeVisuel(el,menu,numero_cfg);
		
		//on ajoute le lien configurer
		$('cfg_car'+numero_cfg).setProperty('href',this.compare.infos.body[this.selected[numero_cfg].body].version[this.selected[numero_cfg].version].motor[this.selected[numero_cfg].motor].url);
		$('cfg_car'+numero_cfg).setStyle('visibility','visible');
		
		//on lance l'ajax
		this.comparer();
	},
	
	//on change les effets visuel
	completeChoice_changeVisuel: function(el,menu,numero_cfg)
	{
		if ( numero_cfg < 3 )
		{
			if ( numero_cfg == 0 && !this.show_config2 || numero_cfg == 1 && !this.show_config3 || numero_cfg == 2 && !this.showComplete_config3 )
			{
				//changement de label et apparition du choix de la config suivante
				menu.getPrevious().setStyle('display','block');
				menu.getPrevious().getPrevious().setStyle('display','none');
				//on montre la prochaine config que si on est pas a la 3e config
				if ( numero_cfg != 2 )
				{
					menu.getParent().getNext().getFirst().setStyle('display','block');
					menu.getParent().getNext().getFirst().getNext().setStyle('display','none');
					menu.getParent().getNext().getFirst().getNext().getNext().dispose();
					menu.getParent().getNext().getLast().setStyle('display','block');
				}
				
				//on montre le boutton configurer
				$('cfg_car'+numero_cfg).getParent().setStyle('text-align','center');
				$('cfg_car'+numero_cfg).setStyle('visibility','visible');
				$('cfg_car'+numero_cfg).setProperty('href','#');
				
				//tableau ferme complete et preselection siilhouette
				if ( numero_cfg == 0 )
				{
					$('secondConfig_GrBodyStyle_Label').getElement('.mod').set('html',this.compare.trad_silhouette);
				}
				else if ( numero_cfg == 1 )
				{
					$('contentBody').getElement('.WhiteGray').addClass('completed');
					$('thirdConfig_GrBodyStyle_Label').getElement('.mod').set('html',this.compare.trad_silhouette);
				}
				else if ( numero_cfg == 2 )
				{
					$('contentBody').getElement('.Gray').addClass('completed');
				}
			}
		}
		
		//on met a jour le nombre de config choisi
		if ( numero_cfg == 0 )
		{
			this.show_config2 = true;
		}
		else if ( numero_cfg == 1 )
		{
			this.show_config3 = true;
		}
		else if ( numero_cfg == 2 )
		{
			this.showComplete_config3 = true;
		}
	},
	
	//on compare les version
	comparer: function()
	{
		//loading
		$("Overlay").setStyle('height',$(window).getScrollSize().y+$(window).getScroll().y);
		new Fx.Tween("Message",
		{
			property: 'opacity',
			duration: 'normal'
		}).start(0.0,0.7);
		new Fx.Tween("Overlay",
		{
			property: 'opacity',
			duration: 'normal'
		}).start(0.0,0.7);
	
		//on envoie les modele choisi
		this.data.model = this.compare.infos.model;
		this.data.body = this.selectedId[0].body + ',' + this.selectedId[1].body + ',' + this.selectedId[2].body;
		this.data.version = this.selectedId[0].version + ',' + this.selectedId[1].version + ',' + this.selectedId[2].version;
		this.data.motor = this.selectedId[0].motor + ',' + this.selectedId[1].motor + ',' + this.selectedId[2].motor;
		this.data.box = this.selectedId[0].box + ',' + this.selectedId[1].box + ',' + this.selectedId[2].box;
		
		
		//prepare ajax
		var request = new Request({
			url: '/defaultSites/peugeot/php/new_cfg_compare.php',
			method: 'post',
			update: 'refresh-me',
			data: this.data,
			onComplete: this.compareSuccess
		})
		//request ajax
		request.send();
		
		//console.log(this.data.body);console.log(this.data.version);console.log(this.data.motor);console.log(this.data.box);
	},
	
	//compareSuccess
	compareSuccess: function(data, xml)
	{
		if (data == 'KO')
		{
			alert('Veuillez choisir un 2e modele pour comparer !');
			return ;
		}
		else
		{
			this.storeXml = xml;
			cfgCompare.showCompare(xml);
		}
		
		//loading ended
		$("Overlay").setStyle('height',$(window).getScrollSize().y+$(window).getScroll().y);
		new Fx.Tween("Message",
		{
			property: 'opacity',
			duration: 'normal'
		}).start(0.7,0);
		new Fx.Tween("Overlay",
		{
			property: 'opacity',
			duration: 'normal'
		}).start(0.7,0);
	},
	
	//show tab compare
	showCompare: function(xml)
	{
		//mise a 0 le tbody du compare
		$('carCompareTable').getFirst().set('html','');
		
		//on genere le tableau comparatif
		this.showCategory(xml,this.defaultPage);
		this.showCategory(xml,this.caracPage);
		
		//on checked les choix d'affichages et on fais le tri neccessaire
		if ( $('chkOption').checked == false )
			this.hideOptions();
		
		if ( $('chkStandard').checked == false )
			this.hideStd();
		
		if ( $('chkTechnical').checked == false )
		{
			this.hideCaracs();
		}
		
		//add price
		var total = xml.getElementsByTagName('root').item(0).getElementsByTagName('total').item(0).firstChild.nodeValue.toInt();
		this.nb_car = total;
		var prices = xml.getElementsByTagName('cars').item(0).getElementsByTagName('car');
		for (var i = 0; i < total; i++)
		{
			var prix = prices.item(i).getElementsByTagName('price').item(0).firstChild.nodeValue;
			if ( this.compare.showPrice )//si les prix sont affiches ou pas ==> australie qui ne veut pas de prix
			{
				var final_price_to_display = this.compare.before_price + prix + this.compare.after_price;
				$('priceLabel'+i).set('html',final_price_to_display);
			}
			else
			{
				$('priceLabel'+i).set('html',this.compare.replacePriceLabel);
			}
		}
		
		if ( $('chkDifferenceOnly').checked == true )
		{
			this.showDiff();
		}
		
		this.showFirstCat();
	},
	
	//montrer que la 1er categorie
	showFirstCat: function()
	{
		var isFirst = 0;
		var tbody = $('carCompareTable').getFirst();
			tbody.getChildren().each(function(el)
			{
				if ( el.hasClass('RowStandard')  && el.getStyle('display')!='none' )
				{
					if ( isFirst > 0 )
						this.accordionCat(el);
					isFirst++;
				}
			}.bind(this));
	},
	
	//hide useless category
	slide_cat: function()
	{
		var tbody = $('carCompareTable').getFirst();
			tbody.getChildren().each(function(el)
			{
				if ( el.hasClass('RowStandard')  && !el.hasClass('isHidden') )
				{
					var suivant = el.getNext();
					while ( suivant.getStyle('display') == 'none' && !suivant.hasClass('RowStandard') && suivant != tbody.getLast() )
					{
						suivant = suivant.getNext();
					}
					if ( suivant.hasClass('RowStandard') || suivant == tbody.getLast() && suivant.getStyle('display') == 'none' )
						el.setStyle('display','none');
					else
						el.setStyle('display','');
				}
			}.bind(this));
	},
	
	//hide all equipements
	hideEquips: function()
	{
		if ( !$('chkStandard').checked && !$('chkOption').checked )
		{
			var tbody = $('carCompareTable').getFirst();
			tbody.getChildren().each(function(el)
			{
				if ( el.hasClass('page_equipments') && el.hasClass('isStd') && el.hasClass('isOption') )
					el.setStyle('display','none');
			}.bind(this));
			
			$$('img').each(function(el)
			{
				if ( el.getProperty('src') == '/defaultSites/peugeot/images/new_cfg/Layout/ww_dot.gif' )
					el.setStyle('display','none');
				if ( el.getProperty('src') == '/defaultSites/peugeot/images/new_cfg/Layout/bw_dot.gif' )
					el.setStyle('display','none');
			}.bind(this));
		}
		
		this.slide_cat();
	},
	
	showEquips: function()
	{
		if ( $('chkStandard').checked && $('chkOption').checked )
		{
			var tbody = $('carCompareTable').getFirst();
			tbody.getChildren().each(function(el)
			{
				if ( el.hasClass('page_equipments') && el.hasClass('isStd') && el.hasClass('isOption') && !el.hasClass('isHidden') )
					el.setStyle('display','');
			}.bind(this));
			
			$$('img').each(function(el)
			{
				if ( el.getProperty('src') == '/defaultSites/peugeot/images/new_cfg/Layout/ww_dot.gif' )
					el.setStyle('display','');
				if ( el.getProperty('src') == '/defaultSites/peugeot/images/new_cfg/Layout/bw_dot.gif' )
					el.setStyle('display','');
			}.bind(this));
		}
		
		if ( $('chkDifferenceOnly').checked == true )
		{
			this.showDiff();
		}
		
		this.slide_cat();
	},
	
	//slide caracs
	slide_caracs: function()
	{
		if ( $('chkTechnical').checked == true )
			this.showCaracs();
		else
			this.hideCaracs();
	},
	
	//slide options
	slide_options: function()
	{
		if ( $('chkOption').checked == true )
			this.showOptions();
		else
			this.hideOptions();
	},
	
	//slide std
	slide_std: function()
	{
		if ( $('chkStandard').checked == true )
			this.showStd();
		else
			this.hideStd();
	},
	
	//slide diff
	slide_diff: function()
	{
		if ( $('chkDifferenceOnly').checked == true )
			this.showDiff();
		else
			this.hideDiff();
	},
	
	//on montre que les diffs
	showDiff: function()
	{
		if ( this.nb_car > 1 )
		{
			var diff = false;
			var tbody = $('carCompareTable').getFirst();
			tbody.getChildren().each(function(el)
			{
				if ( !el.hasClass('RowStandard') && el.getStyle('display')!='none' && !el.hasClass('isHidden') )
				{
					diff = false;
					var current = el.getFirst().getNext();
					for (var i = 0; i < this.nb_car-1; i++)
					{
						if ( current.get('html') != current.getNext().get('html') )
						{
							diff = true;
						}
						current = current.getNext();
					}
					if ( !diff )
					{
						el.setStyle('display','none');
						//console.log('pareil');
					}
					else
					{
						//console.log('different');
					}
				}
			}.bind(this));
			
			this.slide_cat();
		}
	},
	
	//on montre tout
	hideDiff: function()
	{
		if ( this.nb_car > 1 )
		{
			//equivalent a checker les autres options d'affichage
			var tbody = $('carCompareTable').getFirst();
			tbody.getChildren().each(function(el)
			{
				if ( !el.hasClass('isHidden') )
					el.setStyle('display','');
			}.bind(this));
			//on checked les choix d'affichages et on fais le tri neccessaire
			if ( $('chkOption').checked == false )
				this.hideOptions();
			
			if ( $('chkStandard').checked == false )
				this.hideStd();
			
			if ( $('chkTechnical').checked == false )
			{
				this.hideCaracs();
			}
			
			this.slide_cat();
		}
	},
	
	//on montre les caracteristiques
	showCaracs: function()
	{
		//$$('.page_caracs').setStyle('display','');
		var tbody = $('carCompareTable').getFirst();
		tbody.getChildren().each(function(el)
		{
			if ( el.hasClass('page_caracs') && !el.hasClass('isHidden') || el.hasClass('isHidden') && el.hasClass('RowStandard')) /* && !el.hasClass('isStd') */
				el.setStyle('display','');
		}.bind(this));
		if ( $('chkDifferenceOnly').checked == true )
		{
			this.showDiff();
		}
	},
	
	//on cache les caracteristiques
	hideCaracs: function()
	{
		//$$('.page_caracs').setStyle('display','none');
		var tbody = $('carCompareTable').getFirst();
		tbody.getChildren().each(function(el)
		{
			if ( el.hasClass('page_caracs') ) /* && !el.hasClass('isStd') */
				el.setStyle('display','none');
		}.bind(this));
	},
	
	//on montres les options des equipements
	showOptions: function()
	{
		var tbody = $('carCompareTable').getFirst();
		tbody.getChildren().each(function(el)
		{
			if ( el.hasClass('isOption') && !el.hasClass('isHidden') ) /* && !el.hasClass('isStd') */
				el.setStyle('display','');
		}.bind(this));
		
		$$('img').each(function(el)
		{
			if ( el.getProperty('src') == '/defaultSites/peugeot/images/new_cfg/Layout/ww_dot.gif' )
				el.setStyle('display','');
		}.bind(this));
		
		this.showEquips();
	},
	
	//on enleve les options des equipements
	hideOptions: function()
	{
		var tbody = $('carCompareTable').getFirst();
		tbody.getChildren().each(function(el)
		{
			if ( !el.hasClass('isStd') && el.hasClass('isOption') )
				el.setStyle('display','none');
		}.bind(this));
		
		$$('img').each(function(el)
		{
			if ( el.getProperty('src') == '/defaultSites/peugeot/images/new_cfg/Layout/ww_dot.gif' )
				el.setStyle('display','none');
		}.bind(this));
		
		this.hideEquips();
	},
	
	//on montres les options des equipements
	showStd: function()
	{
		var tbody = $('carCompareTable').getFirst();
		tbody.getChildren().each(function(el)
		{
			if ( el.hasClass('isStd') && !el.hasClass('isHidden') ) /*&& !el.hasClass('isOption')*/
			{
				el.setStyle('display','');
			}
		}.bind(this));
		
		$$('img').each(function(el)
		{
			if ( el.getProperty('src') == '/defaultSites/peugeot/images/new_cfg/Layout/bw_dot.gif' )
				el.setStyle('display','');
		}.bind(this));
		
		this.showEquips();
	},
	
	//on enleve les options des equipements
	hideStd: function()
	{
		var tbody = $('carCompareTable').getFirst();
		tbody.getChildren().each(function(el)
		{
			if ( el.hasClass('isStd') && !el.hasClass('isOption') )
				el.setStyle('display','none');
		}.bind(this));
		
		$$('img').each(function(el)
		{
			if ( el.getProperty('src') == '/defaultSites/peugeot/images/new_cfg/Layout/bw_dot.gif' )
				el.setStyle('display','none');
		}.bind(this));
		
		this.hideEquips();
	},
	
	//montrer la category qu'on veut avec l'attribut page --> page_equipments et page_caracs
	showCategory: function(xml,page)
	{
		var tbody = $('carCompareTable').getFirst();
		
		//nombre de vehicule a comparer
		var total = xml.getElementsByTagName('root').item(0).getElementsByTagName('total').item(0).firstChild.nodeValue.toInt();
		
		//listing des categorie
		var categories = xml.getElementsByTagName('root').item(0).getElementsByTagName(page).item(0).getElementsByTagName('categories').item(0).getElementsByTagName('category');
		for (var i = 0; i < categories.length; i++)
		{
			var category = categories.item(i);
			var categoryLabel = category.getElementsByTagName('label').item(0).firstChild.nodeValue;
			
			// Add toggler category
			var tr = new Element('tr');
				if ( page == 'page_equipments' )
					tr.set('class','RowStandard page_equipments');
				else
					tr.set('class','RowStandard page_caracs');
				var th = new Element('th');
					th.set('class','Category Open');
					var span = new Element('span');
						span.set('class','CategoryLabel');
						span.set('html', '&nbsp;'+categoryLabel);
					th.appendChild(span);
				tr.appendChild(th);
				for (var t = 0; t < 3; t++)
				{
					var td = new Element ('td');
						td.set('class','CategoryTd');
						var tmp = t+1;
						td.addClass('CatName'+tmp);
					tr.appendChild(td);
				}
			//ajout du slide pour les cat
			tr.addEvent('click', this.accordionCat.pass([tr], this));
			tbody.appendChild(tr);
			
				// Create equipment list and  Add equipment
				var equipments = category.getElementsByTagName('equipments').item(0).getElementsByTagName('equipment');
				
				//nombre d'equipement par categorie
				for (var j = 0; j < equipments.length; j++)
				{
					var tr = new Element('tr');
					if ( page == 'page_equipments' )
						tr.set('class','page_equipments');
					else
						tr.set('class','page_caracs');
					var textExists = false;
					
					var items = equipments.item(j).getElementsByTagName('item');
					
					// trouve le nom de l'equipement et l'ajouter
					for (var k = 0; k < total; k++)
					{
						var exists = (items.item(k).getAttribute('exists') == 'true') ? true : false;
						if (!textExists && exists)
						{
							textExists = true;
							var th = new Element('th');
							th.set('class','FirstCol');
							//th.set('html',items.item(k).firstChild.nodeValue);
							var div = new Element('div');
								div.set('class','smashing');
								div.set('html',items.item(k).firstChild.nodeValue);
							th.appendChild(div);
							tr.appendChild(th);
						}
					}
					
					// Generate items by option and defauts
					for (var k = 0; k < 3; k++)
					{
						var td = new Element('td');
						if (k < total)
						{
							//effet de style
							if ( k == 0)
								td.set('class','CellDarkStandard');
							else if ( k == 1)
								td.set('class','CellStandard');
							else if ( k == 2)
								td.set('class','CellDarkStandard');
								
							var exists = (items.item(k).getAttribute('exists') == 'true') ? true : false;
							if (exists)
							{
								var isOption = (items.item(k).getAttribute('isOption') == 'true') ? true : false;
								if (isOption)
									tr.addClass('isOption');
								else
									tr.addClass('isStd');
								var value = items.item(k).getAttribute('value');
								//si caracteristique techique
								if (value)
								{
									td.appendText(value);
									tr.removeClass('isStd');
								}
								//si equipements
								else
								{
									td.appendChild(new Element('img', {
										'src':	'/defaultSites/peugeot/images/new_cfg/Layout/' + ((!isOption) ? 'bw' : 'ww') + '_dot.gif',
										'alt':	(exists) ? 'YES' : 'NO'
									}));
								}
							}
							else
								td.set('html','&nbsp;');
						}
						else
						{
							//effet de style
							if ( k == 1)
								td.set('class','CellWhiteGrayStandard');
							else if ( k == 2)
								td.set('class','CellGrayStandard')
								
							td.set('html','&nbsp;');
						}
						tr.appendChild(td);
					}
					tbody.appendChild(tr);
				}
		}
		
	},
	
	accordionCat: function(el)
	{
		if ( el.getFirst().hasClass('Open') )
		{
			var current = el.getNext();
			el.addClass('isHidden');
			while ( !current.hasClass('RowStandard') && current!= $('carCompareTable').getFirst().getLast() )
			{
				current.setStyle('display','none');
				current.addClass('isHidden');
				current = current.getNext();
			}
			if ( current == $('carCompareTable').getFirst().getLast() )
			{
				current.setStyle('display','none');
				current.addClass('isHidden');
			}
			el.getFirst().removeClass('Open');
			el.getFirst().addClass('Close');
		}
		else
		{
			var current = el.getNext();
			el.removeClass('isHidden');
			while ( !current.hasClass('RowStandard') && current!= $('carCompareTable').getFirst().getLast() )
			{
				current.setStyle('display','');
				current.removeClass('isHidden');
				current = current.getNext();
			}
			if ( current == $('carCompareTable').getFirst().getLast() )
			{
				current.setStyle('display','');
				current.removeClass('isHidden');
			}
			el.getFirst().removeClass('Close');
			el.getFirst().addClass('Open');
			
			//on checked les choix d'affichages et on fais le tri neccessaire
			if ( $('chkOption').checked == false )
				this.hideOptions();
			
			if ( $('chkStandard').checked == false )
				this.hideStd();
			
			if ( $('chkTechnical').checked == false )
			{
				this.hideCaracs();
			}
			if ( $('chkDifferenceOnly').checked == true )
			{
				this.showDiff();
			}
		}
	},
	
	fin: function()
	{
		
	}
	
	
	
});//fin class
	
	
	
//dom ready
window.addEvent('domready', function() {
	cfgCompare = new ConfiguratorCarsCompare();
});

window.addEvent('load', function() { //lorque tout la page html et les image sont chargees
	//animation now loading -> on enleve l'overlay avec l'image lorque le chargement est termine
		//correction bug IE6
		$("Overlay").setStyle('height',$(window).getScrollSize().y+$(window).getScroll().y);
		
		new Fx.Tween("Message",
		{
			property: 'opacity',
			duration: 'short'
		}).start(0.7,0);
		new Fx.Tween("Overlay",
		{
			property: 'opacity',
			duration: 'short'
		}).start(0.7,0);
});