	//DOM elements
var advancedSearch_oc,
	advancedSearch_title,
	advancedSearch_calculator,
	advancedSearch_hr,
	advancedSearch_table,
	advancedSearch_dropdownStatus,
	advancedSearch_priceSliderBox,
	advancedSearch_priceSlider;

	//Parameters
var advancedSearch_param_price_slider,
	advancedSearch_param_price_limit = 650,
	advancedSearch_param_over_price,
	advancedSearch_param_display_price_slider,
	advancedSearch_param_size_slider,
	advancedSearch_param_display_size_slider;

Event.observe(window, 'load', advancedSearch_init);

function advancedSearch_init(event){
		//Delete load listener
	Event.stopObserving(window, 'load', advancedSearch_init);

		//Var init
	advancedSearch_oc = $('other_criteria');

		//Init advanced search if there is other critera
	if(advancedSearch_oc != null){
		advancedSearch_calculator = $('calculator_bt');
		advancedSearch_title = advancedSearch_oc.select('h2')[0];
		advancedSearch_table = $('oc_table');
		advancedSearch_hr = advancedSearch_title.next();



			//Get params
		advancedSearch_param_price_slider = advancedSearch_oc.select('.js_params.price_slider')[0].firstChild.nodeValue.split(/,/g);
		if(parseInt(advancedSearch_param_price_slider[1]) > advancedSearch_param_price_limit){
			advancedSearch_param_over_price = true;
			advancedSearch_param_price_slider[1] = advancedSearch_param_price_limit;
			if(advancedSearch_param_price_slider[3] > advancedSearch_param_price_limit){
				advancedSearch_param_price_slider[3] = advancedSearch_param_price_limit;
			}
		}else{
			advancedSearch_param_over_price = false;
		}
		if(parseInt(advancedSearch_param_price_slider[0]) == 0 || parseInt(advancedSearch_param_price_slider[1]) == 0){
			advancedSearch_param_display_price_slider = false;
		}else{
			advancedSearch_param_display_price_slider = true;
		}

		advancedSearch_param_size_slider = advancedSearch_oc.select('.js_params.size_slider')[0].firstChild.nodeValue.split(/,/g);
		if(parseInt(advancedSearch_param_size_slider[0]) == 0 || parseInt(advancedSearch_param_size_slider[1]) == 0){
			advancedSearch_param_display_size_slider = false;
		}else{
			advancedSearch_param_display_size_slider = true;
		}



			//Make show/hide button and enable dropdown
		var button = new Image(90, 22);
		button.setAttribute('id', 'more_criteria');
		advancedSearch_title.insert({'bottom':button});

		if((advancedSearch_table == null || (advancedSearch_table != null && advancedSearch_table.select('.selected').length == 0)) && advancedSearch_param_price_slider[0] == advancedSearch_param_price_slider[2] && advancedSearch_param_price_slider[1] == advancedSearch_param_price_slider[3] && advancedSearch_param_size_slider[0] == advancedSearch_param_size_slider[2] && advancedSearch_param_size_slider[1] == advancedSearch_param_size_slider[3]){
			button.setAttribute('src', GFX + 'graphic/shared/elements/advanced_search/bt_show.png');
			setTimeout(function(){advancedSearch_collapse(button);}, 0);
		}else{
			advancedSearch_dropdownStatus = true;
			button.setAttribute('src', GFX + 'graphic/shared/elements/advanced_search/bt_hide.png');
		}
		advancedSearch_title.childElements()[advancedSearch_title.childElements().length - 1].observe('click', advancedSearch_clickHandler);


		if(!MSIE6){
				//Make price slider
			if(advancedSearch_param_display_price_slider){
					//Create elements
				advancedSearch_priceSliderBox = new Element('div', {'id':'price_slider_box'});
				var ps_h3 = new Element('h3');
				var ps_txt = new Element('div');
				advancedSearch_priceSlider = new Element('div', {'id':'price_slider', 'class':'slider'});
				var ps_handle1 = new Element('div', {'class':'handle'});
				var ps_handle2 = new Element('div', {'class':'handle'});
				var ps_trackCover = new Element('div', {'class':'slider_cover'});
				var ps_min = new Element('p', {'class':'min'});
				var ps_max = new Element('p', {'class':'max'});

					//Implement DOM
				advancedSearch_priceSlider.insert({'bottom':ps_trackCover});
				advancedSearch_priceSlider.insert({'bottom':ps_handle1});
				advancedSearch_priceSlider.insert({'bottom':ps_handle2});
				advancedSearch_priceSliderBox.insert({'bottom':ps_h3});
				advancedSearch_priceSliderBox.insert({'bottom':ps_txt});
				advancedSearch_priceSliderBox.insert({'bottom':advancedSearch_priceSlider});
				advancedSearch_priceSliderBox.insert({'bottom':ps_min});
				advancedSearch_priceSliderBox.insert({'bottom':ps_max});
				advancedSearch_oc.insert({'bottom':advancedSearch_priceSliderBox});

					//Update elements
				ps_h3.update('Prix');
				if(!MSIE6 && !MSIE7){
					Cufon.replace(ps_h3);
				}
				ps_min.update(advancedSearch_param_price_slider[0] + '&nbsp;€');
				if(advancedSearch_param_over_price){
					if(advancedSearch_param_price_slider[1] == advancedSearch_param_price_slider[3]){
						ps_txt.update('Votre budget&nbsp;: entre <span>' + advancedSearch_param_price_slider[2] + '</span> € et <span>plus de ' + advancedSearch_param_price_slider[3] + '</span> €');
					}else{
						ps_txt.update('Votre budget&nbsp;: entre <span>' + advancedSearch_param_price_slider[2] + '</span> € et <span>' + advancedSearch_param_price_slider[3] + '</span> €');
					}
					ps_max.update(advancedSearch_param_price_slider[1] + '&nbsp;€ et +');
				}else{
					ps_txt.update('Votre budget&nbsp;: entre <span>' + advancedSearch_param_price_slider[2] + '</span> € et <span>' + advancedSearch_param_price_slider[3] + '</span> €');
					ps_max.update(advancedSearch_param_price_slider[1] + '&nbsp;€');
				}
				if(advancedSearch_table != null){
					advancedSearch_table.setStyle({'marginBottom':'5px', 'paddingBottom':'5px', 'borderBottom':'1px solid #e6e6e6'});
				}

					//Calculate allowed values
				var min = parseInt(advancedSearch_param_price_slider[0]);
				var modifier = 0;
				while((min + modifier) % 10 != 0){
					modifier++;
				}
				var ps_values = [min];
				for(min + modifier; (min + modifier) < advancedSearch_param_price_slider[1]; min = min + 10){
					ps_values.push(min + modifier);
				}
				ps_values.push(advancedSearch_param_price_slider[1]);

					//Transform to slider
				new Control.Slider([ps_handle1, ps_handle2], advancedSearch_priceSlider, {
					'range':$R(parseInt(advancedSearch_param_price_slider[0]), parseInt(advancedSearch_param_price_slider[1])),
					'sliderValue':[parseInt(advancedSearch_param_price_slider[2]), parseInt(advancedSearch_param_price_slider[3])],
					'values':ps_values,
					'spans':[ps_trackCover],
					onSlide:function(values){
						if(values[0] < values[1]){
							ps_txt.select('span')[0].update(parseInt(values[0]));
							if(advancedSearch_param_over_price && parseInt(advancedSearch_param_price_slider[1]) == parseInt(values[1])){
								ps_txt.select('span')[1].update('plus de ' + parseInt(values[1]));
							}else{
								ps_txt.select('span')[1].update(parseInt(values[1]));
							}
						}else{
							ps_txt.select('span')[0].update(parseInt(values[1]));
							if(advancedSearch_param_over_price && parseInt(advancedSearch_param_price_slider[1]) == parseInt(values[0])){
								ps_txt.select('span')[1].update('plus de ' + parseInt(values[0]));
							}else{
								ps_txt.select('span')[1].update(parseInt(values[0]));
							}
						}
					},
					onChange:function(values){
						var min, max;
						if(values[0] < values[1]){
							min = parseInt(values[0]);
							max = parseInt(values[1]);
						}else{
							min = parseInt(values[1]);
							max = parseInt(values[0]);
						}
						if(max == parseInt(advancedSearch_param_price_slider[1]) && advancedSearch_param_over_price == true){
							max = max + '+';
						}

						if(min ==  parseInt(advancedSearch_param_price_slider[0]) && parseInt(max) == parseInt(advancedSearch_param_price_slider[1])){
							window.location = window.location.href.replace(new RegExp('prix/[0-9]+-[0-9]+/'), '').replace(new RegExp('page/[0-9]+/', 'g'), '');
						}else if(min !=  advancedSearch_param_price_slider[2] || max !=  advancedSearch_param_price_slider[3]){
							if(window.location.href.match(new RegExp('/prix/[0-9]*-[0-9]*\\+?/', 'g')) != null){
								window.location = window.location.href.replace(new RegExp('(/prix/)[0-9]+-[0-9]+\\+?/', 'g'), '$1' + min + '-' + max + '/').replace(new RegExp('page/[0-9]+/', 'g'), '');
							}else{
								window.location = (window.location.href + 'prix/' + min + '-' + max + '/').replace(new RegExp('page/[0-9]+/', 'g'), '');
							}
						}
					}
				});
			}



				//Make size slider
			if(advancedSearch_param_display_size_slider){
					//Create elements
				advancedSearch_sizeSliderBox = new Element('div', {'id':'size_slider_box'});
				var ss_h3 = new Element('h3');
				var ss_txt = new Element('div');
				advancedSearch_sizeSlider = new Element('div', {'id':'size_slider', 'class':'slider'});
				var ss_handle1 = new Element('div', {'class':'handle'});
				var ss_handle2 = new Element('div', {'class':'handle'});
				var ss_trackCover = new Element('div', {'class':'slider_cover'});
				var ss_min = new Element('p', {'class':'min'});
				var ss_max = new Element('p', {'class':'max'});

					//Implement DOM
				advancedSearch_sizeSlider.insert({'bottom':ss_trackCover});
				advancedSearch_sizeSlider.insert({'bottom':ss_handle1});
				advancedSearch_sizeSlider.insert({'bottom':ss_handle2});
				advancedSearch_sizeSliderBox.insert({'bottom':ss_h3});
				advancedSearch_sizeSliderBox.insert({'bottom':ss_txt});
				advancedSearch_sizeSliderBox.insert({'bottom':advancedSearch_sizeSlider});
				advancedSearch_sizeSliderBox.insert({'bottom':ss_min});
				advancedSearch_sizeSliderBox.insert({'bottom':ss_max});
				advancedSearch_oc.insert({'bottom':advancedSearch_sizeSliderBox});

					//Update elements
				ss_h3.update('Taille');
				if(!MSIE6 && !MSIE7){
					Cufon.replace(ss_h3);
				}
				ss_min.update(advancedSearch_param_size_slider[0] + advancedSearch_param_size_slider[4]);
				ss_txt.update('Entre <span>' + advancedSearch_param_size_slider[2] + advancedSearch_param_size_slider[4] + '</span> et <span>' + advancedSearch_param_size_slider[3] + advancedSearch_param_size_slider[4] + '</span>');
				ss_max.update(advancedSearch_param_size_slider[1] + advancedSearch_param_size_slider[4]);
				
					// !! Utile pour le pas d'incrementation 
				var incrementValue = parseInt(advancedSearch_param_size_slider[5]);
				
					//Calculate allowed values
				var min = parseInt(advancedSearch_param_size_slider[0]);
				var modifier = 0;
				
					// !! Utilisation de incrementValue
				while((min + modifier) % incrementValue != 0){
					modifier++;
				}
				var ss_values = [min];
					// !! Utilisation de incrementValue
				for(min + modifier; (min + modifier) < advancedSearch_param_size_slider[1]; min = min + incrementValue){
					ss_values.push(min + modifier);
				}
				ss_values.push(advancedSearch_param_size_slider[1]);

					//Transform to slider
				new Control.Slider([ss_handle1, ss_handle2], advancedSearch_sizeSlider, {
					'range':$R(parseInt(advancedSearch_param_size_slider[0]), parseInt(advancedSearch_param_size_slider[1])),
					'sliderValue':[parseInt(advancedSearch_param_size_slider[2]), parseInt(advancedSearch_param_size_slider[3])],
					'values':ss_values,
					'spans':[ss_trackCover],
					onSlide:function(values){
						if(values[0] < values[1]){
							ss_txt.select('span')[0].update(parseInt(values[0]) + advancedSearch_param_size_slider[4]);
							ss_txt.select('span')[1].update(parseInt(values[1]) + advancedSearch_param_size_slider[4]);
						}else{
							ss_txt.select('span')[0].update(parseInt(values[1]) + advancedSearch_param_size_slider[4]);
							ss_txt.select('span')[1].update(parseInt(values[0]) + advancedSearch_param_size_slider[4]);
						}
					},
					onChange:function(values){
						var min, max;
						if(values[0] < values[1]){
							min = parseInt(values[0]);
							max = parseInt(values[1]);
						}else{
							min = parseInt(values[1]);
							max = parseInt(values[0]);
						}
		
						if(min !=  advancedSearch_param_size_slider[2] || max !=  advancedSearch_param_size_slider[3]){
							if(window.location.href.match(new RegExp('/taille/[0-9]*-[0-9]*\\+?/', 'g')) != null){
								window.location = window.location.href.replace(new RegExp('(/taille/)[0-9]*-[0-9]*\\+?/', 'g'), '$1' + min + '-' + max + '/').replace(new RegExp('page/[0-9]*/', 'g'), '');
							}else{
								window.location = (window.location.href + 'taille/' + min + '-' + max + '/').replace(new RegExp('page/[0-9]*/', 'g'), '');
							}
						}
					}
				});
			}
		}
	}
}

function advancedSearch_collapse(button){
	advancedSearch_oc.childElements().each(function(item){
		if(item == advancedSearch_title){
			item.setStyle({'paddingBottom':'0px'});
		}else if(item != advancedSearch_calculator){
			item.setStyle({'display':'none'});
			advancedSearch_dropdownStatus = false;
			button.setAttribute('src', button.getAttribute('src').replace(/bt_hide/g, 'bt_show'));
		}
	});
}

function advancedSearch_uncollapse(button){
	advancedSearch_oc.childElements().each(function(item){
		if(item == advancedSearch_title){
			item.setStyle({'paddingBottom':'5px'});
		}else if(item != advancedSearch_calculator){
			item.setStyle({'display':''});
			advancedSearch_dropdownStatus = true;
			button.setAttribute('src', button.getAttribute('src').replace(/bt_show/g, 'bt_hide'));
		}
	});
}

function advancedSearch_clickHandler(event){
		//Var init
	var button = event.element();

	if(advancedSearch_dropdownStatus){
		advancedSearch_collapse(button);
	}else{
		advancedSearch_uncollapse(button);
	}
}