var instanceSearch = null;
var instanceHome = null;
var myCurrentZoom = null;
var FormManager = new Class({
	
	initialize:function(){
		instanceHome = new MenuHome();
		if(Browser.Engine.trident)
			$$("label.pf-input-checkbox").addEvent("mousedown", this.manageCheckbox);
		else $$("label.pf-input-checkbox").addEvent("mousedown", this.manageCheckbox);
		$$(".input-checkbox").each(function(el){
			if(el.get("checked")){
				el.getParent("label").addClass("checked");
			}
		});
		if(Browser.Engine.trident)
			$$("label.pf-input-radio").addEvent("mousedown", this.manageRadio);
		else $$("label.pf-input-radio").addEvent("click", this.manageRadio);
		$$(".uncheck_all").addEvent("mousedown", this.uncheckAll);
		$$(".help-popin").addEvent("click", function(e){
			e.preventDefault();
			if(Browser.Engine.trident)
				$("mask-popin").setStyle("height", $(document.body).getScrollSize().y);
			$("popin-help").removeClass("none");
			$("mask-popin").removeClass("none");
			$("popin-help").getElement(".header-popin .floatright").addEvent("click", (function(e){
				$("mask-popin").addClass("none");
				$("popin-help").addClass("none");
			}).bind(this));
		});
		
		$$(".deploy_click").addEvent("click", this.toggleElement);
		$$(".select-box").addEvent("click", this.selectPopin);
		$$(".select-popin .close").addEvent("click", this.closePopin);
		this.initiliazePlaceholder();
		
	},
	initializeAjax:function(el){
		if(Browser.Engine.trident)
			el.getElements("label.pf-input-radio").addEvent("mousedown", this.manageRadio);
		else el.getElements("label.pf-input-radio").addEvent("click", this.manageRadio);
		el.getElements(".input-checkbox").each(function(el){
			if(el.get("checked")){
				el.getParent("label").addClass("checked");
			}
		});
		this.initiliazePlaceholder();
	},
	initiliazePlaceholder:function(){
		var aPlaceholder = new Array();
		$$(".placeholder").each(function(el){aPlaceholder[el.getProperty("name")] = el.get("value");});
		$$(".placeholder").addEvent("focus", function(){if(this.get("value") == aPlaceholder[this.getProperty("name")]){this.set("value", "");}});
		$$(".placeholder").addEvent("blur", function(){if(this.get("value").length == 0){this.set("value", aPlaceholder[this.getAttribute("name")]);}});
		
	},
	manageCheckbox:function(e){
		e.stop();
		this.toggleClass("checked");
		this.getElement("input").set("checked", !this.getElement("input").get("checked"));
	},
	manageRadio:function(e){
		e.stop();
		var name = this.getElement("input").get("name");
		$$(".pf-input-radio.checked").each(function(el){
			if(el.getElement("input").get("name") == name){
				el.removeClass("checked");
				el.getElement("input").set("checked", false);
			}
		}
		);
		this.toggleClass("checked");
		this.getElement("input").set("checked", !this.getElement("input").get("checked"));
	},
	uncheckAll:function(e){
		e.stop();
		var form = this.getParent("form");
		form.getElements("label.pf-input-checkbox").removeClass("checked");
		form.getElements("input").set("checked", false);
		form.getElements(".color-picker img").addClass("none");
		form.getElements("#input-color").set("value", "");
		
	},
	toggleElement:function(e){
		this.getParent().getElement(".deploy_element").toggleClass("none");
	},
	selectPopin:function(e){
		e.stop();
		$(this.get("id")+"-popin").removeClass("none");
	},
	closePopin:function(e){
		e.stop();
		this.getParent(".select-popin").addClass("none");
	}
	
});

var SearchManager = new Class({
	
	initialize:function(){
		this.initEventSelection();
	},
	initEventSelection:function(){
		if($("list-selection")){
			$$("#list-selection .previous").addEvent("click", (function(e){e.preventDefault();new Request.HTML({"update" : "list-selection","url" : $(e.target).getProperty("href"),"onSuccess":this.initEventSelection.bind(this)}).send();}).bind(this));
			$$("#list-selection .next").addEvent("click", (function(e){e.preventDefault();new Request.HTML({"update" : "list-selection","url" : $(e.target).getProperty("href"),"onSuccess":this.initEventSelection.bind(this)}).send();}).bind(this));
		}
		if($$(".item-search")){
			$$(".item-search").removeEvents("click");
			$$(".item-search").addEvent("mouseenter", this.enterItemSearch);
			$$(".item-search").addEvent("mouseleave", this.leaveItemSearch);
			if ($$(".container-item-accessoire")[0]) {
				$$(".item-search a.selection").removeEvents("click");
				$$(".item-search a.selection").addEvent("click", this.updateSelection.bind(this));
			}else{
				$$(".item-search a.selection").removeEvents("click");
				$$(".item-search a.selection").addEvent("click", this.updateSelection.bind(this));
			}
			
			$$(".item-search div.delete").removeEvents("click");
			$$(".item-search div.delete").addEvent("click", this.updateSelection.bind(this));
		}
	},
	updateSelection:function(e){
		e.preventDefault();
		$(e.target).tween("color", "#b3b3b3");
		$(e.target).addClass("disable");
		//$(e.target).removeEvents("click");
		var myRequest = new Request.HTML({url: $(e.target).getProperty("href"),
							onSuccess:(function(html, html2, html3){
								$("list-selection").set("html", html3);
								this.initEventSelection();
								if($$(".selection-user .selection span"))
									$$(".selection-user .selection span").set("html", $("nb-selection").get("html"));
								if($("nb-selection").get("html") != "0")
									$$(".selection-user .selection").removeClass("none");
								else $$(".selection-user .selection").addClass("none");
								sp.eventAjaxCallback();
							}).bind(this),
							onRequest:function(){
							}
						});
		myRequest.post();
	},
	updateSelectionAccessoire:function(e){
		e.preventDefault();
		if($(e.target).get("id") == "add-selection-basket")
			$(e.target).tween("background-color", "#CCC");
		else $(e.target).tween("color", "#b3b3b3");
		//$(e.target).removeEvents("click");
		if (!$(e.target).hasClass("disable")) {
			var myRequest = new Request.HTML({
				url: $(e.target).getProperty("href"),
				onSuccess: (function(html, html2, html3){
					$("list-selection").set("html", html3);
					this.initEventSelection();
					if ($$(".selection-user .selection span")) 
						$$(".selection-user .selection span").set("html", $("nb-selection").get("html"));
					if ($("nb-selection").get("html") != "0") 
						$$(".selection-user .selection").removeClass("none");
					else 
						$$(".selection-user .selection").addClass("none");
					sp.eventAjaxCallback();
					$("popin-checkout").removeClass("none");
					$("mask-popin").removeClass("none");
					if(Browser.Engine.trident)
						$("mask-popin").setStyle("height", $(document.body).getScrollSize().y);
					
					if(Browser.Engine.trident)
						var myFx = new Fx.Scroll($(document.body)).toTop();
						
					
				}).bind(this),
				onRequest: function(){
				}
			});
			myRequest.post();
		}
		$(e.target).addClass("disable");
	},
	enterItemSearch:function(){
		var sc = $(document.body).getScrollSize().y;
		var ro = this.getElement(".rollover");
		if (this.getElement(".delete") !== null) {
			this.getElement(".delete").toggleClass("none");
		}
		if(ro){
			ro.removeClass("none");
			if(ro.getParent().getParent().getSize().y < this.getElement(".rollover").getSize().y)
				sc = $(document.body).getScrollSize().y;
			if(sc != $(document.body).getScrollSize().y){
				ro.setStyle("top", - (ro.getSize().y - this.getSize().y));
			}else{
				ro.removeProperty("style");
			}
		}
		if(this.getElement(".rollover") !== null)
			this.getElement(".rollover").setStyle("z-index", 50);
		this.setStyle("z-index", 40);
	},
	leaveItemSearch:function(){
		var ro = this.getElement(".rollover");
		if(this.getElement(".delete") !== null)
			this.getElement(".delete").toggleClass("none");
		if(ro){
			ro.addClass("none");
			ro.setStyle("top", 0);
		}
		this.setStyle("z-index", 0);
	}
});

var ProductManager = new Class({
	
	initialize:function(){

	$$(".accordeon-info .title").addEvent("click", this.toggleDesc);
	$$(".accordeon-info .accordeon-arrow").addEvent("click", this.toggleDesc);
		$$("#content-body .menu .selection-user").addEvent("click",
			function(e){
				var target = $(e.target);
				if(!target.hasClass("selection-user")){
					target = target.getParent(".selection-user");
				}
				target.toggleClass("open");
				if(target.getElement(".selection span").get("html") == "0")
					target.getElement(".selection").toggleClass("none");
				$("list-selection").toggleClass("none");
			}
		);
		if($("carousel-associe")){
			this.initCarousel();
		}
		if($("left-carousel-univers")){
			this.initCarouselUnivers();
		}
		if($("slider-color")){
			this.initSlider();
			
		}
		
		if($("big-picture")){
			this.initZoom();
		}
		
		if($$(".item-onglet"))
			this.initMenuUnivers();
		if($("content-page-maison"))
			this.initAccordeonMaison();
			
		
		if($("list-selection"))
			this.initSelectPlanche();
		
		if($("add-selection")){
			$("add-selection").addEvent("click", sm.updateSelection.bind(sm));
			
		}
		
		if($("add-selection-basket")){
			$("add-selection-basket").addEvent("click", sm.updateSelectionAccessoire.bind(sm));
		}
		
		if ($("popin-checkout")) {
			if (Browser.Engine.trident) {
				var cloneElement = $("popin-checkout").clone(true, true);
				$("popin-checkout").destroy();
				cloneElement.inject($(document.body));
			}
			$("popin-checkout").getElement(".header-popin .floatright").addEvent("click", function(e){
				$("popin-checkout").addClass("none");
				$("mask-popin").addClass("none");
			});
			$("popin-checkout").getElement(".body-popin .close-checkout").addEvent("click", function(e){
				$("popin-checkout").addClass("none");
				$("mask-popin").addClass("none");
			});
			$("popin-checkout").getElement(".body-popin .show-selection").addEvent("click", function(e){
				e.preventDefault();
				$("popin-checkout").addClass("none");
				$("mask-popin").addClass("none");
				var target = $$(".selection-user")[0];
				target.toggleClass("open");
				if (target.getElement(".selection span").get("html") == "0") 
					target.getElement(".selection").toggleClass("none");
				$("list-selection").toggleClass("none");
			});
		}
		
		if($("search-produit"))
			new Autocomplete();
			
		if($("popin-share"))
			this.initShare();
		if($("bloc-grey")){
			if($("desc-big-collection").getSize().y > $("bloc-grey").getSize().y)
				$("bloc-grey").setStyle("height", $("desc-big-collection").getSize().y+"px");
		}
		
		if ($$(".fiche-produit-associe")[0]) 
			document.onselectstart = function(){return false;};
		
		if ($("select-country")) {
			new Selectbar();
		}
		new Ecommerce();
		
		if($$(".color-picker")[0])
			new BulleColor();
			
		if($$(".item-picto-spec")[0] || $$(".item-picto-entretien")[0])
			new BullePicto();
		
		
		if($("teinte-bois")){
			$("teinte-bois").addEvent("click", function(e){
			e.preventDefault();
			if(Browser.Engine.trident)
				$("mask-popin").setStyle("height", $(document.body).getScrollSize().y);
			$("popin-teinte").removeClass("none");
			$("mask-popin").removeClass("none");
			$("popin-teinte").getElement(".header-popin .floatright").addEvent("click", (function(e){
				$("mask-popin").addClass("none");
				$("popin-teinte").addClass("none");
			}).bind(this));
		});
		}
		
		
	},
	toggleDesc:function(e){
		e.stop();
		var accor = this.getParent(".accordeon-info");
		accor.getElement(".desc-accordeon").toggleClass("none");
		accor.getElement(".accordeon-arrow").toggleClass("picto-close");
		accor.getElement(".accordeon-arrow").toggleClass("picto-open");
	},
	initSlider:function(){
		var el = $('slider-color');
		$("slider-container").removeClass("none");
		if($("slider-container").getChildren("a").length > 6){
			$("slider-container").setStyle("position", "relative");
			$("slider-container").setStyle("width", ($("slider-container").getChildren("a")[0].getSize().x+4)*$("slider-container").getChildren("a").length);
			new Slider(el, el.getElement('.button-slide'), {
				steps: 100,	// There are 35 steps
				range: [0],	// Minimum value is 8
				onChange: function(value){
					$("slider-container").setStyle("left", -(($("slider-container").getSize().x-404)*value/100)+"px");
				}
			});
		}else{
			el.addClass("none");
		}
		
	},
	initZoom:function(){
		new Zoomer("big-picture", { 
		    big: $('big-picture-zoom'), 
		    smooth: 10 
		});
		
	},
	initCarousel:function(){
		/*tab = new Carousel({
			container: 'carousel-associe',
			scroll: 3,
			circular: true,
			current: 0,
			left: $("carousel-associe-right"),
			right: $("carousel-associe-left"),
			fx: {
				duration: 300
			}
		});*/
		tab = new Carousel({
			container: 'carousel-associe',
			scroll: 4,
			circular: true,
			current: 0,
			left: $("carousel-associe-left"),
			right: $("carousel-associe-right"),
			fx: {
				duration: 300
			}
		});
	},
	initCarouselUnivers:function(){
		tabUnivers = new Carousel({
			container: 'content-scroll-carousel-univers',
			scroll: 1,
			circular: true,
			current: 0,
			left: $("left-carousel-univers"),
			right: $("right-carousel-univers"),
			fx: {
				duration: 300
			}
		});
	},
	initMenuUnivers:function(){
		//new MenuUnivers();
		if($$(".collection .main-menu-accessoire .main-menu-li .link-main")[0])
			new MenuUniversCollection();
		if($$(".type .main-menu-accessoire .main-menu-li .link-main")[0])
			new MenuUniversType();
	},
	initAccordeonMaison:function(){
		new AccordeonMaison();
	},
	initSelectPlanche:function(){
		sp = new SelectionPlanche();
	},
	initShare:function(){
		$("share-user").addEvent("click", (function(e){
			e.preventDefault();
			if (Browser.Engine.trident) {
				$("mask-popin").setStyle("height", $(document.body).getScrollSize().y);
				var cloneElement = $("popin-share").clone(true, true);
				$("popin-share").destroy();
				cloneElement.inject($(document.body));
				this.initFormShare();
				//$("mask-popin").setStyle("display", "none");
			}
			$("popin-share").removeClass("none");
			$("mask-popin").removeClass("none");
		}).bind(this));
		this.initFormShare();
		$$(".link-scene").addEvent("click", (function(e){
			if (Browser.Engine.trident) {
				$("mask-popin").setStyle("height", $(document.body).getScrollSize().y);
				var cloneElement = $("popin-scene").clone(true, true);
				$("popin-scene").destroy();
				cloneElement.inject($(document.body));
			}
			$("popin-scene").removeClass("none");
			$("mask-popin").removeClass("none");
			
			//$("popin-scene").setStyle("width", $("popin-scene").getElement("img").getSize().x+"px");
			if($("popin-scene").getElement("img").getSize().x > 640 || $("popin-scene").getElement("img").getSize().y > 500){
				if($("popin-scene").getElement("img").getSize().x > $("popin-scene").getElement("img").getSize().y){
					$("popin-scene").setStyle("width", "640px");
					$("popin-scene").setStyle("height", (parseInt($("popin-scene").getElement("img").getSize().y)+40)+"px");
				}
				else if($("popin-scene").getElement("img").getSize().x < $("popin-scene").getElement("img").getSize().y){
					$("popin-scene").setStyle("height", "540px");
					$("popin-scene").getElement("img").setStyle("height", "500px");
					$("popin-scene").setStyle("width", (parseInt($("popin-scene").getElement("img").getSize().x)+40)+"px");
				}
				else $("popin-scene").setStyle("height", "540px");
			}else $("popin-scene").setStyle("width", $("popin-scene").getElement("img").getSize().x+25+"px");
			
			$("popin-scene").setStyle("margin", "-"+($("popin-scene").getElement("img").getSize().y/2)-50+"px 0 0 -"+($("popin-scene").getElement("img").getSize().x/2)+"px");
			$("popin-scene").getElement(".header-popin .floatright").addEvent("click", function(e){
				$("mask-popin").addClass("none");
				$("popin-scene").addClass("none");
			});
			$("popin-scene").getElement(".body-popin .pic-scene img").addEvent("click", function(e){
				$("mask-popin").addClass("none");
				$("popin-scene").addClass("none");
			});
			$("mask-popin").addEvent("click", function(e){
				$("mask-popin").addClass("none");
				$("popin-scene").addClass("none");
			});
			
		}).bind(this));
			
		
	},
	initFormShare:function(){
		$("popin-share").getElement(".header-popin .floatright").addEvent("click", (function(e){
			$("mask-popin").addClass("none");
			$("popin-share").addClass("none");
			$("popin-share").getElements(".body-popin input").each(function (el, index) {
				el.set("value", el.getProperty("base"));
			});
			$("popin-share").getElements(".body-popin textarea").each(function (el, index) {
				el.set("value", el.getProperty("base"));
			});
			
			
		}).bind(this));
		$("popin-share").getElements(".body-popin input").addEvent("focus", (function(e){
			if($(e.target).get("value") == $(e.target).getProperty("base"))
				$(e.target).set("value", "");
		}).bind(this));
		$("popin-share").getElements(".body-popin input").addEvent("blur", (function(e){
			if($(e.target).get("value") == "")
				$(e.target).set("value", $(e.target).getProperty("base"));
		}).bind(this));
		$("popin-share").getElements(".body-popin textarea").addEvent("focus", (function(e){
			if($(e.target).get("value") == $(e.target).getProperty("base"))
				$(e.target).set("value", "");
		}).bind(this));
		$("popin-share").getElements(".body-popin textarea").addEvent("blur", (function(e){
			if($(e.target).get("value") == "")
				$(e.target).set("value", $(e.target).getProperty("base"));
		}).bind(this));
		$("popin-share").getElements(".body-popin .button").addEvent("click", (function(e){
			var error = false;
			if ($("popin-share").getElement(".body-popin #firstname-share").get("value") == $("popin-share").getElement(".body-popin #firstname-share").getProperty("base") ||
				$("popin-share").getElement(".body-popin #lastname-share").get("value") == $("popin-share").getElement(".body-popin #lastname-share").getProperty("base") ||
				$("popin-share").getElement(".body-popin #email-share").get("value") == $("popin-share").getElement(".body-popin #email-share").getProperty("base") ||
				$("popin-share").getElement(".body-popin #message-share").get("value") == $("popin-share").getElement(".body-popin #message-share").getProperty("base")) {
				alert("Tous les champs sont obligatoire");
				error = true;
			}
			if (!error) {
				$("popin-share").getElement("#share-product").set("send", {
					url: $(e.target).getProperty("href"),
					onSuccess: function(html, html2, html3){
						$("success-message").removeClass("none");
						$("success-message").set('tween', {
							duration: '5000'
						});
						$("success-message").tween('opacity', [1, 0]);
					},
					onRequest: function(){
					
					}
				});
				$("popin-share").getElement("#share-product").send();
			}
		}).bind(this));
	}
	
});


var Carousel = new Class({
		Implements: [Options, Events],
		options: {
			mode: 'horizontal',
			animation: 'Move',
			scroll: 4,
			fx: {
				link: 'cancel',
				transition: 'sine:out',
				duration: 500
			}
		},
		plugins: {},
		initialize: function (options) {
			this.addEvent('change', function (current) {
				this.current = current;
			}.bind(this)).setOptions(options);
			
			this.elements = $(options.container).getChildren(options.selector);
			$each({left: 'previous', right: 'next'}, function (val, key) {
				if(this.elements.length <= options.scroll){
					this.options[key].addClass("hidden");
				}
				if(this.options[key]) $(this.options[key]).addEvent('click', function (e) {
					e.stop();
					this[val]();
				}.bind(this));
			}, this);
			
			
			this.current = 0;
			this.anim = new this.plugins[this.options.animation](this);
			this.move(this.options.current || 0);
		},
		isVisible: function (index) {
			if($type($(index)) == 'element') index = this.elements.indexOf($(index));
			var length = this.elements.length,
				current = this.current,
				scroll = this.options.scroll;	
			
			if(current <= index && index < current + scroll) return true;
			if(this.options.circular) for(var i = 1; i < scroll; i++) {
				if((i + current)  % length == index) return true;
			}
			return false;
		},
		
		first: function () {
			return this.current;
		},
		
		previous: function (direction) {
			return this.move(this.current - this.options.scroll, direction);
		},
		
		next: function (direction) {
			return this.move(this.current + this.options.scroll, direction);
		},
		
		move: function (index, direction) {
			var elements = this.elements,
				current = this.current,
				length = elements.length,
				scroll = this.options.scroll;
			
			if($type($(index)) == 'element') index = elements.indexOf($(index));
			if(this.isVisible(index)) return this;
			if(!this.options.circular) {
				if(index > length - scroll) index = length - scroll;
			}	
				
			else {
				if(index < 0) index += length;
				index %= Math.max(length, 1);
			}			
		
			if(index < 0 || length <= scroll || index >= length) return this;
			if(direction == undefined) {
				//detect direction. inspired by moostack
				var forward = current < index ? index - current : elements.length - current + index,
					backward = current > index ? current - index : current + elements.length - index;
				
				direction = Math.abs(forward) <= Math.abs(backward) ? 1 : -1;
			}			
			
			this.anim.move(this, index, direction);
			return this;
		}
	});
	
	Carousel.prototype.plugins.Move = new Class({
		initialize: function (carousel) {
			var up = this.up = carousel.options.mode == 'vertical',
				options = this.options = carousel.options,
				elements = this.elements = carousel.elements.map(function (el) { 
					return el.setStyles({display: 'block', position: 'absolute'});
				});
			if(!elements.length) return;
			
			var parent = elements[0].getParent(),
				pos = parent.setStyles({height: parent.offsetHeight, position: 'relative', overflow: 'hidden'}).getStyle('padding' + (this.up ? 'Top' : 'Left'));
				this.property = 'offset' + (up ? 'Top' : 'Left');
				this.margin = 'margin' + (up ? 'Top' : 'Left');
				this.reorder(0, 1).fx = new Fx.Elements(elements, options.fx);
		},
		
		reorder: function (offset, direction) {
			var options = this.options,
				panels = this.elements,
				ini = pos = style(panels[0].getParent(), 'padding' + (this.up ? 'Top' : 'Left')),
				i,
				index,
				length = panels.length,
				horizontal = options.mode == 'horizontal',
				side = horizontal ? 'offsetWidth' : 'offsetHeight';
						
			//rtl
			if(direction == -1) {
				for(i = length; i > options.scroll - 1; i--) {
					index = (i + offset + length) % length;
					panel = panels[index];
					if(horizontal) panel.setStyle('left', pos);
					else panel.setStyles({left: 0, top: pos});
					pos -= (panel[side] + style(panel, this.margin));
				}
				
				pos = ini + panel[side] + style(panel, this.margin);
				for(i = 1; i < options.scroll; i++) {
					index = (i + offset + length) % length;
					panel = panels[index];
					if(horizontal) panel.setStyle('left', pos);
					else panel.setStyles({left: 0, top: pos});
					pos += panel[side] + style(panel, this.margin);
				}
				
				//ltr
			} else if(direction == 1) for(i = 0; i < length; i++) {
				index = (i + offset + length) % length;
				panel = panels[index];				
				if(horizontal) panel.setStyle('left', pos);
				else panel.setStyles({left: 0, top: pos});
				pos += panel[side] + style(panel, this.margin);
			}
			
			return this;
		},
		
		move: function (carousel, current, direction) {
		
			var obj = {}, 
				up = this.up,
				property = this.property,
				offset;
		
			if(this.options.circular) this.reorder(carousel.current, direction);
			offset = carousel.elements[current][property];
			carousel.elements.each(function (el, index) {
				obj[index] = up ? {top: el[property] - offset} : {left: el[property] - offset};
			});
			
			this.fx.start(obj).chain(function () { carousel.fireEvent('change', current); });
		}
	});
	
function style(el, style) {

	var mrg = el.getStyle(style);
	
	return mrg == 'auto' ? 0 : mrg.toInt() ;
}

var UniversSlideshow = new Class({
	
	initialize:function(){
		
		if($("big-image")){
			this.picture = $("big-image").getElements(".picture");
			if(this.picture.length <= 1){
				$("big-image").getElement(".left").addClass("none");
				$("big-image").getElement(".right").addClass("none");
			}else{
				$("big-image").getElement(".left").addEvents({
					"click": this.moveLeft.bind(this),
					"mouseenter": function(e){$(e.target).set('tween', {duration: 100});$(e.target).tween("left", 3);},
					"mouseleave": function(e){$(e.target).set('tween', {duration: 100});$(e.target).tween("left", 8);}
				});
				$("big-image").getElement(".right").addEvents({
					"click": this.moveRight.bind(this),
					"mouseenter": function(e){$(e.target).set('tween', {duration: 100});$(e.target).tween("left", 760);},
					"mouseleave": function(e){$(e.target).set('tween', {duration: 100});$(e.target).tween("left", 755);}
				});
			}
		}
	},
	moveLeft:function(e){
		e.stop();
		var element =  $("big-image").getElement(".value:not(.none)");
		var nextEl = $(element.getPrevious(".value"));
		if(nextEl == null){
			nextEl = $($("big-image").getElement(".desc-big").getLast());
		}
		this.slide(nextEl, element);
	},
	moveRight:function(e){
		e.stop();
		var element =  $("big-image").getElement(".desc-big .value:not(.none)");
		var nextEl = $(element.getNext(".value"));
		if(nextEl == null){
			nextEl = $($("big-image").getElement(".desc-big").getFirst());
		}
		this.slide(nextEl, element);
	},
	slide:function(nextEl, element){
		$("mask-event").removeClass("none");
		nextEl.removeClass("none");
		nextEl.morph({
			"opacity": 1,
			'top': [50, 0]
		});
		
		
		element.get("morph").cancel();
		element.get("morph").addEvent("complete", function(){
													element.get("morph").removeEvents("complete");
													element.setStyle("top", "50px");
													element.addClass("none");
													$("mask-event").addClass("none");
													});
		element.morph({
			"opacity": 0,
			'top': [0, -50]
		});
		
	}
});


var Zoomer = new Class({
	Implements: [Options],
	options: {
		smooth: 6
	},
	
	initialize: function(element, options){
		if (document.id(element + "-zoom").hasClass("haszoom")) {
			this.setOptions(options);
			this.small = document.id(element);
			if (!this.small.complete) {
				this.small.addEvent('load', function(){
					this.prepareSmall();
				}
.bind(this));
			}
			else {
				this.prepareSmall();
			}
			var src = this.options.big || this.small.get('big');
			var styles = {
				position: 'absolute',
				top: 0,
				left: 0,
				opacity: 0,
				cursor: 'default'
			};
			
			if (typeof src == 'string') {
				this.big = new Element('img', {
					src: src,
					styles: styles
				});
			}
			else {
				this.big = src;
				this.big.setStyles(styles);
			}
			
			
			if (!this.big.complete) {
				this.big.addEvent('load', function(){
					this.prepareBig();
				}
.bind(this));
			}
			else {
				this.prepareBig();
			}
		}
	},
	prepareSmall: function(){
		this.wrapper = new Element('div', {'class': 'zoomer-wrapper'});
		this.wrapperC = new Element("div", {"class":"zoomer-wrapper-small"}).wraps(this.small);
		this.wrapper.wraps(this.wrapperC);

		['margin', 'left', 'top', 'bottom', 'right', 'float', 'clear', 'border', 'padding'].each(function(p){
			var style = this.small.getStyle(p);
			var dflt = 'auto';
			if(['float', 'clear', 'border'].contains(p)) dflt = 'none';
			if(p == 'padding') dflt = '0';
			try{
				this.small.setStyle(p, dflt);
				this.wrapper.setStyle(p, style);
			}catch(e){};
		}, this);
		this.wrapper.setStyles({
			width: this.small.offsetWidth,
			height: this.small.offsetHeight,
			position: 'relative'
		});
		this.smallSize = {
			width: this.small.width,
			height: this.small.height
		};
		
		this.smallFollower = new Element("div", {"class": "none"});
		this.smallFollower.setStyle("background", "#ffffff");
		this.smallFollower.setStyle("position", "absolute");
		this.smallFollower.setStyle("left", 0);
		this.smallFollower.setStyle("top", 0);
		this.smallFollower.setStyle("width", 193);
		this.smallFollower.setStyle("height", 161);
		this.smallFollower.fade(0.5);
		this.wrapperC.adopt(this.smallFollower);
		
		this.wrapperC.addEvents({
			mouseenter: this.startZoom.bind(this),
			mouseleave: this.stopZoom.bind(this),
			mousemove: this.move.bind(this)
		});
		
		/*this.smallFollower.addEvents({
			mouseenter: this.startZoom.bind(this),
			mouseleave: this.stopZoom.bind(this),
			mousemove: this.move.bind(this)
		});*/
		
		if(this.bigPrepared){
			this.ready();
		}else{
			this.smallPrepared = true;
		}
	},
	
	prepareBig: function(){

		this.big.removeClass("none");
		this.bigSize = {
			width: this.big.width,
			height: this.big.height
		};
		if(this.smallPrepared){
			this.ready();
		}else{
			this.bigPrepared = true;
		}
	},
	
	ready: function(){
		this.big.inject(this.wrapper);
		this.bigWrapper = new Element('div', {
			'class': 'zoomer-wrapper-big none',
			styles: {
				position: 'absolute',
				overflow: 'hidden',
				top: this.small.getPosition().y - this.wrapper.getPosition().y - this.wrapper.getStyle('border-top-width').toInt(),
				left: 408,
				width: this.small.offsetWidth,
				height: this.small.offsetHeight,
				zIndex: (this.small.getStyle('zIndex').toInt() || 0) + 1
			}
		}).wraps(this.big);
	},
	
	move: function(event){
		this.dstPos = event.page;
	},
	
	startZoom: function(){
		this.position = this.small.getPosition();
		this.size = this.small.getSize();
		
		this.ratio = {
			x: 1 - this.bigSize.width / this.smallSize.width,
			y: 1 - this.bigSize.height / this.smallSize.height
		};
		
		this.current = {
			left: this.big.getStyle('left').toInt(),
			top: this.big.getStyle('top').toInt()
		};
		
		this.currentF = {
				left: this.smallFollower.getStyle('left').toInt(),
				top: this.smallFollower.getStyle('top').toInt()
		};
		
		this.timer = this.zoom.periodical(10, this);
		this.bigWrapper.removeClass("none");
		this.big.fade(1);
		this.smallFollower.removeClass("none");
	},
	
	stopZoom: function(){
		$clear(this.timer);
		this.big.fade(0);
		this.bigWrapper.addClass("none");
		this.smallFollower.addClass("none");
	},
	
	zoom: function(){
		if(!this.dstPos) return;
		
		var steps = this.options.smooth;
		var dst = {
			left: parseInt((this.dstPos.x - this.position.x) * this.ratio.x, 10),
			top: parseInt((this.dstPos.y - this.position.y) * this.ratio.y, 10)
		};
		this.current.left -= (this.current.left - dst.left) / steps;
		this.current.top -= (this.current.top - dst.top) / steps;
		
		this.big.setStyles(this.current);
		
		this.currentF.left = Math.max(0 , Math.min( this.size.x - 193 ,(this.dstPos.x - this.position.x)-96));
		this.currentF.top = Math.max(0, Math.min( this.size.y - 161 , (this.dstPos.y - this.position.y)-80));
			
		
		this.smallFollower.setStyles(this.currentF);
	}
	
});

/*var MenuUnivers = new Class({
	oldElement:null,
	initialize: function(element, options){
		if (Browser.Engine.trident && $$(".pf-input-checkbox")[0]) {
			$$(".main-menu-accessoire .main-menu-li .submenu").setStyle("height", "0");
			$$(".main-menu-accessoire .main-menu-li .submenu").setStyle("padding", "0");
		}
		if($$(".main-menu-accessoire .submenu li.active")[0])
			this.oldElement = $$(".main-menu-accessoire .submenu li.active")[0].getParent(".submenu");
		var myEl = $$(".main-menu-accessoire .main-menu-li .link-main");
		myEl.addEvent("click", this.toggleMenu.bind(this));
		myEl.addEvent("click", this.filterAjax.bind(this));
		var myElPicto = $$(".main-menu-accessoire .main-menu-li .picto-menu-accessoire");
		myElPicto.addEvent("click", this.toggleMenu.bind(this));
		
		var myLink = $$(".main-menu-accessoire .main-menu-li .submenu li a");
		
		myLink.addEvent("click", this.filterAjax.bind(this));
		$$(".menu-accessoire label.pf-input-checkbox").addEvent("mouseup", this.filterAjax.bind(this));
		instanceSearch = new PaginationSearch();
	},
	toggleMenu:function(e){
		e.preventDefault();
		if ($$(".main-menu-accessoire .main-menu-li.active .link-main.active")[0] && !$(e.target).hasClass("active")) {
			var oldElement = $$(".main-menu-accessoire .main-menu-li .link-main.active")[0].getNext("ul");
			//this.togglePicto($$(".main-menu-accessoire .main-menu-li .link-main.active")[0].getNext());
			$$(".main-menu-accessoire .main-menu-li .link-main.active")[0].removeClass("active");
		}
		
		if(oldElement == undefined){
			if ($$(".main-menu-accessoire .submenu li.active")[0] && !$(e.target).hasClass("active")) {
				oldElement = $$(".main-menu-accessoire .submenu li.active")[0].getParent(".submenu");
				//this.togglePicto($$(".main-menu-accessoire .submenu li.active")[0].getParent(".main-menu-li").getElement(".picto-menu-accessoire"));
			}
		}
		if (oldElement == undefined) {
			oldElement = this.oldElement;
			this.oldElement = undefined;
		}
		$$(".main-menu-accessoire .main-menu-li").removeClass("active");
		$$(".main-menu-accessoire .main-menu-li .link-main").removeClass("active");
		if(!$(e.target).hasClass("picto-menu-accessoire"))
			$(e.target).addClass("active");
		var myElement = $(e.target).getNext("ul");
		if (myElement !== null) {
			if (myElement.hasClass("closed")) {
				this.open(myElement);
				if (oldElement != undefined) {
					this.close(oldElement);
				}
				
			}
			else {
				this.close(myElement);
				if (!$(e.target).hasClass("picto-menu-accessoire")) {
					$(e.target).getNext().toggleClass("opened-menu");
					$(e.target).getNext().toggleClass("closed-menu");
				}
			}
			
			if (!$(e.target).hasClass("picto-menu-accessoire")) {
				$(e.target).getNext().toggleClass("opened-menu");
				$(e.target).getNext().toggleClass("closed-menu");
			}
			else {
				$(e.target).toggleClass("opened-menu");
				$(e.target).toggleClass("closed-menu");
			}
		}
	},
	open:function(e){
		this.oldElement = e;
		e.removeClass("none");
		e.removeClass("closed");
		//Remove PADDING
		var myHeight = e.getSize().y - 20;
		e.setStyle("padding", "10px 0 10px 10px");
		e.addClass("closed");
		if (myHeight > 0) {
			e.tween("height", myHeight);
			e.get("tween").addEvent("complete", function(){
				e.get("tween").removeEvents("complete");
				e.removeClass("closed");
				e.setStyle("height", "auto");
			});
		}else e.setStyle("height", "auto");
	},
	close:function(e){
		if (e) {
			//Remove Padding
			if(e.getParent(".main-menu-li").getElement(".picto-menu-accessoire"))
				this.togglePicto(e.getParent(".main-menu-li").getElement(".picto-menu-accessoire"));
			else{
				this.togglePicto(e.getParent(".main-menu-li").getElement(".opened-menu"));
			}
			e.setStyle("height", (e.getSize().y - 20) + "px");
			e.setStyle("padding", "10px 0 10px 10px");
			e.get("tween").addEvent("complete", function(){
				e.removeProperty("style");
				e.get("tween").removeEvents("complete");
				e.addClass("none");
			});
			
			e.tween("height", 0);
			
			e.removeClass("opened");
			e.addClass("closed");
		}
	},
	togglePicto:function(el){
		if (el) {
			el.toggleClass("opened-menu");
			el.toggleClass("closed-menu");
		}
	},
	filterAjax:function(e){
			e.preventDefault();
			var uri, target = $(e.target);
		
		if(!target.hasClass("pf-input-checkbox")){
			$$(".main-menu-accessoire .main-menu-li .submenu li").removeClass("active");
		}
		target.getParent().addClass("active");
		if($$(".main-menu-accessoire .main-menu-li .submenu li.active a").length > 0){
			uri = $$(".main-menu-accessoire .main-menu-li .submenu li.active a")[0].getProperty("href");
		}
		else if($$(".main-menu-accessoire .main-menu-li .link-main.active").length > 0){
			uri = $$(".main-menu-accessoire .main-menu-li .link-main.active")[0].getProperty("href");
		}
		else{
			uri =target.getProperty("href");
		}
		
		if(uri =="#") return;
		
		
		var myRequest = new Request.HTML({url: uri,
							data:"marque="+$$(".pf-input-checkbox input:checked").get("value").join(","),
							onSuccess:function(html, html2, html3){
										$$(".loader").addClass("none");
										$$(".loader-white").addClass("none");
										$$("."+target.getProperty("container"))[0].set("html", html3);
										if ($$(".main-menu-accessoire .main-menu-li .submenu li.active a").length > 0) {
											$("current-accessoire").removeClass("none");
											$("current-accessoire").set("html", "> "+$$(".main-menu-accessoire .main-menu-li .submenu li.active a")[0].get("text"));
											$$(".content .content-page .content-accessoire-type .big-pic-collection").setStyle("background", "url(\"" + baseUrl + "images/ambiance/" + $$(".main-menu-accessoire .main-menu-li .submenu li.active a")[0].get("text") + ".jpg\") no-repeat");
										}
										if($$(".main-menu-accessoire .main-menu-li .link-main.active")[0]){
											$("current-accessoire").removeClass("none");
											$("current-accessoire").set("html", "> "+$$(".main-menu-accessoire .main-menu-li .link-main.active")[0].get("text"))
											if($$(".main-menu-accessoire .main-menu-li .submenu li.active a")[0])
												$("current-accessoire").set("html", $("current-accessoire").get("html")+" > "+$$(".main-menu-accessoire .main-menu-li .submenu li.active a")[0].get("text"));
										}
										if($("value-result").get("html") == "0")
											$$("."+$(e.target).getProperty("container"))[0].addClass("noborder");
										$$(".nb-result").set("html", $("value-result").get("html"));
										$$(".nb-page").set("html", $("value-page").get("html"));
										$$(".content .pagination .input").getElement("input").set("value", "1");
										sm = new SearchManager();
										new PaginationSearch(uri);
									},
							onRequest:function(){
								$$(".loader").removeClass("none");
								$$(".loader-white").removeClass("none");
							}
						});
		myRequest.post();
	}
});*/

var MenuUniversCollection = new Class({
	initialize:function(){
		$$(".collection .main-menu-accessoire .main-menu-li .link-main").addEvent("click", this.toggleMenu.bind(this));
		$$(".collection .main-menu-accessoire .main-menu-li .submenu li a").addEvent("click", this.filterAjax.bind(this));
		instanceSearch = new PaginationSearch($$(".collection .main-menu-accessoire .main-menu-li .submenu li.active a")[0].get("href"));
	},
	toggleMenu:function(e){
		e.preventDefault();
		if(Browser.Engine.trident)
			var heightUl = $(e.target).getParent("li").getElements(".submenu.closed li").length*16;
		else heightUl = $(e.target).getParent("li").getElements(".submenu.closed li").length*14;
		var myUl = $(e.target).getParent("li").getElement(".submenu");
		if(!$(e.target).getParent("li").hasClass("active")){
			this.openMenu(myUl, heightUl);
		}else{
			this.closeMenu(myUl);
		}
	},
	openMenu:function(e, myHeight){
		if($$(".collection .main-menu-accessoire .main-menu-li.active .opened")[0])
			this.closeMenu($$(".collection .main-menu-accessoire .main-menu-li.active .opened")[0]);
		e.removeClass("none");
		e.getParent("li").addClass("active");
		e.get("tween").addEvent("complete", function(){
			e.get("tween").removeEvents("complete");
			e.removeClass("closed");
			e.addClass("opened");
		});
		e.tween("height", myHeight);
		this.togglePicto(e.getParent("li").getElement(".picto-menu-accessoire"));
		
	},
	closeMenu:function(e){
		e.get("tween").addEvent("complete", function(){
			e.get("tween").removeEvents("complete");
			e.removeClass("opened");
			e.addClass("closed");
			e.addClass("none");
		});
		e.getParent("li").removeClass("active");
		e.tween("height", 0);
		this.togglePicto(e.getParent("li").getElement(".picto-menu-accessoire"));
	},
	togglePicto:function(e){
		e.toggleClass("opened-menu");
		e.toggleClass("closed-menu");
	},
	filterAjax:function(e){
		e.preventDefault();
		var target = $(e.target);
		var uri =target.getProperty("href");
		$$(".main-menu-accessoire .main-menu-li .submenu li.active")[0].removeClass("active");
		target.getParent().addClass("active");
		var myRequest = new Request.HTML({url: uri,
							data:"marque="+$$(".pf-input-checkbox input:checked").get("value").join(","),
							onSuccess:function(html, html2, html3){
										$$(".loader").addClass("none");
										$$(".loader-white").addClass("none");
										$$("."+target.getProperty("container"))[0].set("html", html3);
										if ($$(".main-menu-accessoire .main-menu-li .submenu li.active a").length > 0) {
											$("current-accessoire").removeClass("none");
											$("current-accessoire").set("html", "> "+$$(".main-menu-accessoire .main-menu-li .submenu li.active a")[0].get("text"));
											$$(".content .content-page .content-accessoire-type .big-pic-collection").setStyle("background", "url(\"" + baseUrl + "images/ambiance/" + $$(".main-menu-accessoire .main-menu-li .submenu li.active a")[0].get("text") + ".jpg\") no-repeat");
										}
										if($("value-result").get("html") == "0")
											$$("."+$(e.target).getProperty("container"))[0].addClass("noborder");
										$$(".nb-result").set("html", $("value-result").get("html"));
										$$(".nb-page").set("html", $("value-page").get("html"));
										$$(".content .pagination .input").getElement("input").set("value", "1");
										sm = new SearchManager();
										new PaginationSearch(uri);
									},
							onRequest:function(){
								$$(".loader").removeClass("none");
								$$(".loader-white").removeClass("none");
							}
						});
		myRequest.post();
	}
});

var MenuUniversType = new Class({
	initialize:function(){
		$$(".type .main-menu-accessoire .main-menu-li .link-main").addEvent("click", this.toggleMenu.bind(this));
		$$(".type .main-menu-accessoire .main-menu-li .submenu li a").addEvent("click", this.filterAjax.bind(this));
		$$(".menu-accessoire label.pf-input-checkbox").addEvent("click", this.filterAjax.bind(this));
		var uri = "";
		if($$(".main-menu-accessoire .main-menu-li .submenu li.active")[0])
			uri = $$(".main-menu-accessoire .main-menu-li .submenu li.active a")[0].get("href");
		else if($$(".main-menu-accessoire .main-menu-li.active .link-main.active")[0])
			uri = $$(".main-menu-accessoire .main-menu-li.active .link-main.active")[0].get("href");
		instanceSearch = new PaginationSearch(uri+"/marque/"+$$(".pf-input-checkbox.checked input").get("value").join(","));
	},
	toggleMenu:function(e){
		e.preventDefault();
		if(Browser.Engine.trident)
			var heightUl = $(e.target).getParent("li").getElements(".submenu.closed li").length*16;
		else heightUl = $(e.target).getParent("li").getElements(".submenu.closed li").length*14;
		var myUl = $(e.target).getParent("li").getElement(".submenu");
		if(Browser.Engine.trident)
				$("mask-menu").setStyle("height", $(document.body).getScrollSize().y);
		$("mask-menu").removeClass("none");
		if(!$(e.target).getParent("li").hasClass("active")){
			this.openMenu(myUl, heightUl, e);
		}else{
			this.closeMenu(myUl);
		}
		this.filterAjax(e);
	},
	openMenu:function(e, myHeight, target){
		if($$(".type .main-menu-accessoire .main-menu-li.active .opened")[0])
			this.closeMenu($$(".type .main-menu-accessoire .main-menu-li.active .opened")[0]);
		$$(".type .main-menu-accessoire .main-menu-li .link-main").removeClass("active");
		$$(".type .main-menu-accessoire .main-menu-li").removeClass("active");
		if (e !== null) {
			e.removeClass("none");
			e.getParent("li").addClass("active");
			e.getParent("li").getElement(".link-main").addClass("active");
			e.get("tween").addEvent("complete", function(){
				e.get("tween").removeEvents("complete");
				e.removeClass("closed");
				e.addClass("opened");
				$("mask-menu").addClass("none");
			});
			e.tween("height", myHeight);
			this.togglePicto(e.getParent("li").getElement(".picto-menu-accessoire"));
		}else{
			$(target.target).getParent("li").addClass("active");
			$(target.target).getParent("li").getElement(".link-main").addClass("active");
			$("mask-menu").addClass("none");
		}
		
	},
	closeMenu:function(e){
		if (e !== null) {
			e.get("tween").addEvent("complete", function(){
				e.get("tween").removeEvents("complete");
				e.removeClass("opened");
				e.addClass("closed");
				e.addClass("none");
				$("mask-menu").addClass("none");
			});
			e.getParent("li").getElement(".link-main").removeClass("active");
			e.getParent("li").removeClass("active");
			e.tween("height", 0);
			this.togglePicto(e.getParent("li").getElement(".picto-menu-accessoire"));
		}
	},
	togglePicto:function(e){
		e.toggleClass("opened-menu");
		e.toggleClass("closed-menu");
	},
	filterAjax:function(e){
		e.preventDefault();
		var target = $(e.target);
		var uri = null;
		
		if($$(".main-menu-accessoire .main-menu-li .submenu li.active")[0] && !target.hasClass("pf-input-checkbox"))
			$$(".main-menu-accessoire .main-menu-li .submenu li.active")[0].removeClass("active");
		
		if(target.getParent("ul") !== null)
			if(target.getParent("ul").hasClass("submenu"))
				target.getParent().addClass("active");
				
		if($$(".main-menu-accessoire .main-menu-li .submenu li.active a").length > 0){
			uri = $$(".main-menu-accessoire .main-menu-li .submenu li.active a")[0].getProperty("href");
		}
		else if($$(".main-menu-accessoire .main-menu-li .link-main.active").length > 0){
			uri = $$(".main-menu-accessoire .main-menu-li .link-main.active")[0].getProperty("href");
		}else{
			uri =target.getProperty("href");
		}
		
		var myRequest = new Request.HTML({url: uri,
							data:"marque="+$$(".pf-input-checkbox.checked input").get("value").join(","),
							onSuccess:function(html, html2, html3){
										$$(".loader").addClass("none");
										$$(".loader-white").addClass("none");
										$$("."+target.getProperty("container"))[0].set("html", html3);
										if($$(".main-menu-accessoire .main-menu-li .link-main.active")[0]){
											$("current-accessoire").removeClass("none");
											$("current-accessoire").set("html", "> "+$$(".main-menu-accessoire .main-menu-li .link-main.active")[0].get("text"));
											if($$(".main-menu-accessoire .main-menu-li .submenu li.active a")[0])
												$("current-accessoire").set("html", $("current-accessoire").get("html")+" > "+$$(".main-menu-accessoire .main-menu-li .submenu li.active a")[0].get("text"));
										}
										if($("value-result").get("html") == "0")
											$$("."+$(e.target).getProperty("container"))[0].addClass("noborder");
										$$(".nb-result").set("html", $("value-result").get("html"));
										$$(".nb-page").set("html", $("value-page").get("html"));
										$$(".content .pagination .input").getElement("input").set("value", "1");
										sm = new SearchManager();
										new PaginationSearch(uri+"/marque/"+$$(".pf-input-checkbox.checked input").get("value").join(","));
										$("mask-menu").addClass("none");
									},
							onRequest:function(){
								$$(".loader").removeClass("none");
								//$$(".loader-white").removeClass("none");
							}
						});
		myRequest.post();
	}
});

var AccordeonMaison = new Class({
	initialize:function(){
		var accordeon = $$(".content-page-maison .index .accordeon .name").addEvent("click", this.toggleAccordeon.bind(this));
		var accordeonBis = $$(".content-page-maison .index .accordeon .floatright").addEvent("click", this.toggleAccordeon.bind(this));
		var tableAcc = $$(".accordeon");
		for(var i=0 ; i<tableAcc.length ; i++){
			if (!tableAcc[i].hasClass("noaccordeon")) {
				if (tableAcc[i].getElement(".scroll-maison span").getSize().y > 200) {
					new ScrollControl(tableAcc[i].getElement(".scroll-maison"), {
						'createControls': true
					});
					tableAcc[i].getElements("div")[3].addClass("none");
					tableAcc[i].getElements("div")[5].addClass("none");
				}
			}
		}
		$$(".content-page-maison .index .accordeon:not(.noaccordeon) .scroll-maison").addClass("none");
		this.open($$(".content-page-maison .index .accordeon:not(.noaccordeon)")[0]);
	},
	toggleAccordeon:function(e){
		if($(e.target).getParent().hasClass("active")){
			this.close($(e.target).getParent());
		}else{
			this.open($(e.target).getParent());
		}
	},
	open:function(el){
		if($$(".content-page-maison .index .accordeon.active")[0])
			this.close($$(".content-page-maison .index .accordeon.active")[0]);
		if (el !== undefined) {
			el.set("tween", {
				transition: Fx.Transitions.Linear,
				duration: 500,
				onStart:function(){$$("body").setStyle("oveflow", "hidden");},
				onComplete:function(){$$("body").setStyle("oveflow", "scroll");}
			});
			if (el.getElements("div")[3] != undefined && el.getElements("div")[5]) {
				el.getElements("div")[3].removeClass("none");
				el.getElements("div")[5].removeClass("none");
			}
			el.tween("height", [0, 232]);
			el.addClass("active");
			el.getElement(".closed").addClass("opened");
			el.getElement(".closed").removeClass("closed");
			el.getElement(".scroll-maison").removeClass("none");
			if (el.getElement(".scroll-maison span").getSize().y < 200 && el.getElements("div")[5] != undefined) {
				el.getElements("div")[5].addClass("none");
			}
		}
	},
	close:function(el){

		el.set("tween", {transition: Fx.Transitions.Linear, duration:750});
		el.tween("height", 15);
		el.removeClass("active");
		el.getElement(".opened").addClass("closed");
		el.getElement(".opened").removeClass("opened");
//		el.getElement(".scroll-maison").addClass("none");
//		el.getElements("div")[3].addClass("none");
//		el.getElements("div")[5].addClass("none");
	}
});

var PaginationSearch = new Class({
	initialize:function(uri){
		var previous = $$(".content .pagination .previous");
		var next = $$(".content .pagination .next");
		var input = $$(".content .pagination .input .page-input");
		var checkForm = $$(".content .filter-form .pf-input-checkbox");
		var uncheckForm = $$(".content .filter-form .uncheck_all");
		var planche = $$(".content .filter-form .planche-harmonie");
		
		previous.removeEvents();
		next.removeEvents();
		input.removeEvents();
		previous.addEvent("click", (function(e){this.goToPage(-1, uri, e);}).bind(this) );
		next.addEvent("click", (function(e){this.goToPage(1, uri, e);}).bind(this) );
		input.addEvent("keyup", (function(e){
			if (e.key == 'enter') this.goToPage(0, uri, e);
		}).bind(this) );
		checkForm.addEvent("click", this.filterForm.bind(this));
		uncheckForm.addEvent("click", this.filterForm.bind(this));
		planche.addEvent("click", function(e){
			e.preventDefault();
			var target = $$(".selection-user")[0];
			target.toggleClass("open");
			if (target.getElement(".selection span").get("html") == "0") 
				target.getElement(".selection").toggleClass("none");
			$("list-selection").toggleClass("none");
		});
		
	},
	filterForm:function(e){
		e.preventDefault();
		var page = 1;
		var uri = $(e.target).getParent("form").getProperty("href")+"page/"+page;
		var myRequest = new Request.HTML({url: uri,
							onSuccess:function(html, html2, html3){
										$$(".loader").addClass("none");
										$$(".loader-white").addClass("none");
										$$("."+$(e.target).getParent("form").getProperty("element"))[0].set("html", html3);
										$$(".content .pagination .input").getElement("input").set("value", page);
										if($("value-result").get("html") == "0")
											$$("."+$(e.target).getParent("form").getProperty("element"))[0].addClass("noborder");
										else $$("."+$(e.target).getParent("form").getProperty("element"))[0].removeClass("noborder");
										$$(".nb-result").set("html", $("value-result").get("html"));
										$$(".nb-page").set("html", $("value-page").get("html"));
										sm = new SearchManager();
									},
							onRequest:function(){
								$$(".loader").removeClass("none");
								$$(".loader-white").removeClass("none");
							}
						});
					
		myRequest.post($($(e.target).getParent("form").getProperty("id")));
	},
	goToPage:function(pageDefault, uriDefault, e){
		var page = (parseInt($(e.target).getParent().getElement("input").get("value"))+pageDefault);
		var maxPage = parseInt($$(".nb-page")[0].get("html"));
		if(page <= 0)
			page = 1;
		if(page >maxPage){
			page = maxPage;
		}
		
		if(uriDefault == undefined)
			uri = $(e.target).getProperty("href")+"page/"+page;
		else uri = uriDefault+"/page/"+page;
		
		var myRequest = new Request.HTML({url: uri,
							onSuccess:function(html, html2, html3){
										$$(".loader").addClass("none");
										$$(".loader-white").addClass("none");
										$$("."+$(e.target).getProperty("element"))[0].set("html", html3);
										var myElement = $(document.body);
										var myFx = new Fx.Scroll(myElement).toTop();
										$$(".content .pagination .input").getElement("input").set("value", page);
										sm = new SearchManager();
									},
							onRequest:function(){
								$$(".loader").removeClass("none");
								$$(".loader-white").removeClass("none");
							}
						});
		if($(e.target).getProperty("form") === null)
			myRequest.post();
		else myRequest.post($($(e.target).getProperty("form")));
	}
});

var SelectionPlanche = new Class({
	initialize:function(){
		$$(".content .content-selection .item-search").removeEvents("click");
		$$(".content .content-selection .item-search").addEvent("click", function(e){
			e.stop();
			if(!$(e.target).hasClass("item-search"))
				$(e.target).getParent(".item-search").toggleClass("selected");
			else $(e.target).toggleClass("selected");
		});
		if($("create_board"))
			$("create_board").addEvent("click", this.selectItem);
		
		$$(".menu-selection a.ajaxlink").addEvent("click", this.ajaxlink.bind(this));
		$$("#list-selection a.close-selection").removeEvent("click");
		$$("#list-selection a.close-selection").addEvent("click", function(e){
			e.preventDefault();
			$$(".selection-user").toggleClass("open");
			$(e.target).getParent("#list-selection").toggleClass("none");
			if($$(".selection-user .selection span")[0].get("html") == "0")
				$$(".selection-user .selection")[0].toggleClass("none");
		});
		
	},
	selectItem:function(e){
		e.stop();
		var selectedItem = $$(".content .content-selection .item-search.selected");
		if(selectedItem.length < 5){
			alert($("error-under-5").get("html"));
			return;
		}	
		if(selectedItem.length > 12){
			alert($("error-over-15").get("html"));
			return;
		}
		
		var params = new Array();
		selectedItem.each(function(el, id){
			params.push(el.get("id"));
		});
		
		var form = new Element("form", {"action":$("create_board").get("href"), "method":"post", "class":"none"});
		form.adopt(new Element("input", {"value":JSON.encode(params), "name":"selection"}));
		$(document.body).adopt(form);
		form.submit();
	},
	eventAjaxCallback:function(responseTree, responseElements, responseHTML){
		$$("#list-selection a.ajaxlink").addEvent("click", this.ajaxlink.bind(this));
		$$("#list-selection form.ajaxform").addEvent("submit", this.ajaxform.bind(this));
		fm.initializeAjax($("list-selection"));
		$$("#list-selection a.close-selection").addEvent("click", function(e){
			e.preventDefault();
			$$(".selection-user").toggleClass("open");
			$(e.target).getParent("#list-selection").toggleClass("none");
			if($$(".selection-user .selection span")[0].get("html") == "0")
				$$(".selection-user .selection")[0].toggleClass("none");
		});
		if($("nb-selection")){
			$$(".selection-user .selection span")[0].set("html", $("nb-selection").get("html"));
		}
		if($("list-selection").getElement("#select-country"))
			new Selectbar();
	},
	ajaxlink:function(e){
		e.stop();
		new Request.HTML({
			"update" : "list-selection",
			"url" : e.target.get("href"),
			"onSuccess" : this.eventAjaxCallback.bind(this)
		}).send();
	},
	ajaxform:function(e){
		e.stop();
		new Request.HTML({
			"update" : "list-selection",
			"url" : e.target.get("action"),
			"onSuccess" : this.eventAjaxCallback.bind(this)
		}).post(e.target);
	}
});

var Autocomplete = new Class({
	myRequest:null,
	myTimer:null,
	myTimer2:null,
	initialize:function(){
		$("search-produit").addEvent("keyup", this.search.bind(this));
		$("autocomplete").addEvent("mouseleave", (function(e){this.myTimer = this.maskDiv.delay(1000);}).bind(this));
		$("autocomplete").addEvent("mouseenter", this.keepDiv.bind(this));
		$("autocomplete").getParent().addEvent("submit", function(){return false;});
	},
	maskDiv:function(e){
		$("autocomplete").addClass("none");
		$("autocomplete").setStyle("height", "auto");
		$("autocomplete").setStyle("overflow", "auto");
	},
	keepDiv:function(e){
		if(this.myTimer !== null)
			clearTimeout(this.myTimer);
	},
	search:function(e){
		var value = $(e.target).get("value");
		$("autocomplete").addClass("none");
		$("loader").addClass("none");
		$("autocomplete").setStyle("height", "auto");
		$("autocomplete").setStyle("overflow", "auto");
		
		if (value != "" && value.length > 2) {
			if (this.myTimer2 !== null) 
				clearTimeout(this.myTimer2);
			
			var uri = $(e.target).getProperty("href");
			
			this.myRequest = new Request.HTML({
				url: uri,
				onSuccess: function(html1, html2, html3){
					$("loader").addClass("none");
					$("autocomplete").removeClass("none");
					$("autocomplete").set("html", html3);
					if ($("autocomplete").getSize().y > 200) {
						$("autocomplete").setStyle("height", "200px");
						$("autocomplete").setStyle("overflow", "auto");
					}
				},
				onRequest: function(){
					$("loader").removeClass("none");
				},
				data: "search=" + value
			});
			this.myTimer2 = setTimeout((function(){
				this.myRequest.send();
			}).bind(this), 300);
		}
	}
});

var Selectbar = new Class({
	myTimer:null,
	initialize:function(){
		$$(".select-country").addEvent("click", function(e){
			if($(e.target).get("id") == "select-country")
				$(e.target).getElement(".list-country").toggleClass("none");
			else $(e.target).getParent(".select-country").getElement(".list-country").toggleClass("none");
		});
		$$(".select-country .list-country li a").addEvent("click", function(e){
			e.preventDefault();
			$(e.target).getParent(".select-country").getNext("#pays").set("value", $(e.target).getProperty("country"));
			$(e.target).getParent(".select-country").getElement("span").set("text", $(e.target).get("text"));
			//$(e.target).getParent(".list-country").toggleClass("none");
		});
		$$(".select-country .list-country").addEvent("mouseleave", (function(e){
			this.myTimer = this.maskCountry.delay(1000);
		}).bind(this));
		$$(".select-country .list-country").addEvent("mouseenter", (function(e){
			if(this.myTimer !== null)
				clearTimeout(this.myTimer);
		}).bind(this));
		$$(".select-country .hidder").addEvent("mouseleave", (function(e){
			this.myTimer = this.maskCountry.delay(1000);
		}).bind(this));
		$$(".select-country .hidder").addEvent("mouseenter", (function(e){
			if(this.myTimer !== null)
				clearTimeout(this.myTimer);
		}).bind(this));
	},
	maskCountry:function(e){
		$$(".select-country .list-country").addClass("none");
	}
	
});

var BulleColor = new Class({
	initialize:function(){
		$$(".color-picker .floatleft").addEvent("click", (function(e){
			if(!$(e.target).hasClass("floatleft"))
				target = $(e.target).getParent();
			else target = $(e.target);
			if(target.getElement("img").hasClass("none")){
				target.getParent().getElements("img").addClass("none");
				target.getElement("img").toggleClass("none");
			}else{
				target.getParent().getElements("img").addClass("none");
			}
				
			if($("input-color").get("value") != target.getProperty("search"))
				$("input-color").set("value", target.getProperty("search"));
			else $("input-color").set("value", "");
			instanceSearch.filterForm(e);
		}).bind(this));
		$$(".color-picker .multicolor").addEvent("click", (function(e){
			if(!$(e.target).hasClass("floatright"))
				target = $(e.target).getParent();
			else target = $(e.target);
			if(target.getElement("img").hasClass("none")){
				target.getParent().getElements("img").addClass("none");
				target.getElement("img").toggleClass("none");
			}else{
				target.getParent().getElements("img").addClass("none");
			}
			if($("input-color").get("value") != target.getProperty("search"))
				$("input-color").set("value", target.getProperty("search"));
			else $("input-color").set("value", "");
			instanceSearch.filterForm(e);
		}).bind(this));
		$$(".color-picker .floatleft").addEvent("mouseenter", function(e){
			if(!$(e.target).hasClass("floatleft"))
				target = $(e.target).getParent();
			else target = $(e.target);
			sourisX = e.client.x;
			sourisY = e.client.y;
			var scrollTop = $(document.body).getScroll().y;
			$("bulle").setStyle("top", sourisY - 35 +scrollTop);
			$("bulle").setStyle("left", sourisX - 10);
			$("bulle").getElement(".texte").set("html", target.getProperty("color"));
			$("bulle").removeClass("none");
		});
		$$(".color-picker .floatleft").addEvent("mousemove", function(e){
			sourisX = e.client.x;
			sourisY = e.client.y;
			var scrollTop = $(document.body).getScroll().y;
			$("bulle").setStyle("top", sourisY - 35 +scrollTop);
			$("bulle").setStyle("left", sourisX - 10);
		});
		$$(".color-picker .floatleft").addEvent("mouseleave", function(e){
			$("bulle").addClass("none");
		});
		$$(".color-picker .multicolor").addEvent("mouseenter", function(e){
			if(!$(e.target).hasClass("multicolor"))
				target = $(e.target).getParent();
			else target = $(e.target);
			sourisX = e.client.x;
			sourisY = e.client.y;
			var scrollTop = $(document.body).getScroll().y;
			$("bulle").setStyle("top", sourisY - 35 +scrollTop);
			$("bulle").setStyle("left", sourisX - 10);
			$("bulle").getElement(".texte").set("html", target.getProperty("color"));
			$("bulle").removeClass("none");
		});
		$$(".color-picker .multicolor").addEvent("mousemove", function(e){
			sourisX = e.client.x;
			sourisY = e.client.y;
			var scrollTop = $(document.body).getScroll().y;
			$("bulle").setStyle("top", sourisY - 35 +scrollTop);
			$("bulle").setStyle("left", sourisX - 10);
		});
		$$(".color-picker .multicolor").addEvent("mouseleave", function(e){
			$("bulle").addClass("none");
		});
	}
});

var BullePicto = new Class({
	initialize:function(){
		$$(".item-picto-spec").addEvent("mouseenter", function(e){
			if(!$(e.target).hasClass("floatleft"))
				target = $(e.target).getParent();
			else target = $(e.target);
			sourisX = e.client.x;
			sourisY = e.client.y;
			var scrollTop = $(document.body).getScroll().y;
			$("bulle-noire").setStyle("top", sourisY - 35 +scrollTop);
			$("bulle-noire").setStyle("left", sourisX - 10);
			$("bulle-noire").getElement(".texte").set("html", target.getProperty("bulle"));
			$("bulle-noire").removeClass("none");
		});
		$$(".item-picto-spec").addEvent("mousemove", function(e){
			sourisX = e.client.x;
			sourisY = e.client.y;
			var scrollTop = $(document.body).getScroll().y;
			$("bulle-noire").setStyle("top", sourisY - 35 +scrollTop);
			$("bulle-noire").setStyle("left", sourisX - 10);
		});
		$$(".item-picto-spec").addEvent("mouseleave", function(e){
			$("bulle-noire").addClass("none");
		});
		$$(".item-picto-entretien").addEvent("mouseenter", function(e){
			if(!$(e.target).hasClass("floatleft"))
				target = $(e.target).getParent();
			else target = $(e.target);
			sourisX = e.client.x;
			sourisY = e.client.y;
			var scrollTop = $(document.body).getScroll().y;
			$("bulle-noire").setStyle("top", sourisY - 35 +scrollTop);
			$("bulle-noire").setStyle("left", sourisX - 10);
			$("bulle-noire").getElement(".texte").set("html", target.getProperty("bulle"));
			$("bulle-noire").removeClass("none");
		});
		$$(".item-picto-entretien").addEvent("mousemove", function(e){
			sourisX = e.client.x;
			sourisY = e.client.y;
			var scrollTop = $(document.body).getScroll().y;
			$("bulle-noire").setStyle("top", sourisY - 35 +scrollTop);
			$("bulle-noire").setStyle("left", sourisX - 10);
		});
		$$(".item-picto-entretien").addEvent("mouseleave", function(e){
			$("bulle-noire").addClass("none");
		});
	}
});

var MenuHome = new Class({
	initialize:function(){
		
	},
	showMenu:function(){
		$("menu-home").tween('opacity', [0, 1]);
		$("footer-home").tween('opacity', [0, 1]);
	}
});

var Ecommerce = new Class({
	initialize:function(){
		if ($("ecommerce")) {
			$("ecommerce").getElements(".bt-plus").addEvent("click", function(e){
				e.preventDefault();
				var myInput = $(e.target).getPrevious();
				var myOldValue = parseInt(myInput.get("value"));
				var myValue = parseInt(myInput.get("value"))+1;
				myValue = ((myValue) > 99 ? 99 : (myValue));
				myInput.set("value", myValue);
				$(e.target).removeEvents("click");
				if(myOldValue+1 < 100)
					$(e.target).getParent("#ecommerce").submit();
			});
			$("ecommerce").getElements(".qty-ecommerce").addEvent("change", function(e){
				$(e.target).getParent("#ecommerce").submit();
			});
			$("ecommerce").getElements(".qty-ecommerce").addEvent("keyup", function(e){
			if (e.key == 'enter') $(e.target).getParent("#ecommerce").submit();
			});
			$("ecommerce").getElements(".bt-moins").addEvent("click", function(e){
				e.preventDefault();
				var myInput = $(e.target).getNext();
				myInput.set("value", (parseInt(myInput.get("value")) - 1));
				$(e.target).removeEvents("click");
				$(e.target).getParent("#ecommerce").submit();
			});
			$("ecommerce").getElements(".add-supp-product").addEvent("click", function(e){
				e.preventDefault();
				$("add-prod").set("value", "");
				$("add-prod").set("value", $(e.target).getProperty("product"));
				$(e.target).getParent("#ecommerce").submit();
			});
			$("ecommerce").getElements(".bt-sup").addEvent("click", function(e){
				e.preventDefault();
				$("suppr-basket").set("value", "");
				$("suppr-basket").set("value", $(e.target).getProperty("key"));
				$(e.target).getParent("#ecommerce").submit();
			});
			$("ecommerce").getElement(".footer-valid a").addEvent("click", function(e){
				e.preventDefault();
				var error = false;
				if($$(".select-country")[0]){
					$$(".select-country").each(function(el){
						if(el.getNext().get("value") == "")
							error = true;
					});
				}
				if (!error) {
					$(e.target).getParent("#ecommerce").set("action", $(e.target).get("href"));
					$(e.target).getParent("#ecommerce").submit();
				}else $("error-message").removeClass("none");
			});
		}
		if($$(".footer-paiement")[0]){
			//$$(".footer-paiement .pf-input-radio").removeEvents("click");
			$$(".footer-paiement .pf-input-radio").addEvent("click", function(e){
				$(e.target).getParent("form").submit();
			});
			$$(".footer-valid a").addEvent("click", function(e){
				e.preventDefault();
					this.myRequest = new Request.HTML({
					url: baseUrl+"checkout/savecommande",
					onSuccess: function(html1, html2, html3){
						$("PaymentRequest").submit();
					},
					onRequest: function(){
					},
					data: "devise=" + $("devise").get("value") + "&tva=" + $("tva").get("value") + "&ttc=" + $("ttc").get("value") + "&livraison="+$("valuelivraison").get("value")+"&ht="+$("ht").get("value")+"&reference="+$("reference").get("value")+"&typelivraison="+$("typelivraison").get("value")
				}).send();
			});
		}
	}
});

var fm, sp, sm, fp;
function fnReady(){
	fm = new FormManager();
	sm = new SearchManager();
	fp = new ProductManager();
	if($$(".search-advanced")[0])
		instanceSearch = new PaginationSearch();
	document.body.oncontextmenu = function(){return false;};
	
}

window.addEvent("load", fnReady);
