var topnavbar = Class.create({

	initialize: function(topnavbarid) {
		this.elem = $(topnavbarid);
		this.ongletcontainer = this.elem.down('div.cssclass_onglets');
		this.contentcontainer = this.ongletcontainer.next('div.cssclass_onglet_contents');
		this.onglets = this.ongletcontainer.select('div.cssclass_onglet');
		this.selected = this.ongletcontainer.down('div.cssclass_onglet.cssclass_selected_deep');
		this.newsinput = this.elem.down('div.cssclass_subscribe').down('input');
		this.cartanchor = this.elem.down('a.cssclass_cart');
		this.registerCallBacks();
		this.timeout = null;
		this.marquesmanager  = new topnavbarMarques(this);
		this.licencesmanager = new topnavbarLicences(this);
		this.searchmanager   = new topnavbarSearch(this);
	},
	
	onOngletEvent: function(event) {
		var element = Event.element(event);
		var type    = event.type;
		var za, zonglet, zcontent;
		var zopenedonglet, zopenedcontent;
		
		zopenedonglet = this.ongletcontainer.down('div.cssclass_onglet.cssclass_selected');
		zopenedcontent = this.contentcontainer.down('div.cssclass_onglet_content.cssclass_selected');
		
		if (element.tagName.toLowerCase()=='a') {
			za = element;
			zonglet = element.up('div.cssclass_onglet');
		} else if (element.tagName.toLowerCase()=='div') {
			zonglet = element;
			za = element.down('a');
		} else {
			return ;
		}
				
		if (zonglet.hasClassName('cssclass_boutiques')) {
			zcontent = this.contentcontainer.down('div.cssclass_onglet_content.cssclass_boutiques');
			
		} else if (zonglet.hasClassName('cssclass_marques')) {
			zcontent = this.contentcontainer.down('div.cssclass_onglet_content.cssclass_marques');
			
		} else if (zonglet.hasClassName('cssclass_licences')) {
			zcontent = this.contentcontainer.down('div.cssclass_onglet_content.cssclass_licences');
			
		} else {
			zcontent = null;
			
		}
		
		switch(type) {
			case 'click':
				if (zonglet.hasClassName('cssclass_selected')) {
					var zclosed = this.closeOnglet(zonglet, zcontent,true);
					if ( (zclosed==true) && (this.selected!=null) ) this.selected.addClassName('cssclass_selected_deep');
				} else { 
					this.openOnglet(zonglet, zcontent, zopenedonglet, zopenedcontent);
				}
				break;
				
			case 'mouseover':
				zonglet.addClassName('cssclass_over');
				break;

			case 'mouseout':
				zonglet.removeClassName('cssclass_over');
				break;
		}
	},

	registerCallBacks: function() {
		var zonglet;
		var nb_onglets = this.onglets.length ;
		for (var i=0 ; i<nb_onglets; i++) {
			zonglet = this.onglets[i] ;
			zonglet.observe('click', this.onOngletEvent.bind(this));
			zonglet.observe('mouseover', this.onOngletEvent.bind(this));
			zonglet.observe('mouseout', this.onOngletEvent.bind(this));
		}
		
		var zbutton;
		var closeButtons = this.contentcontainer.select('a.cssclass_close');
		var nb_closeButtons = closeButtons.length;
		for (var i=0 ; i<nb_closeButtons; i++) {
			zbutton = closeButtons[i] ;
			zbutton.observe('click', this.onCloseClicked.bind(this));
		}

		var zcontent;
		var zcontents = this.contentcontainer.select('div.cssclass_onglet_content');
		var nb_contents = zcontents.length;
		for (var i=0 ; i<nb_closeButtons; i++) {
			zcontent = zcontents[i] ;
			zcontent.observe('mouseout', this.onContentMouseOut.bind(this));
			zcontent.observe('mouseover', this.onContentMouseOver.bind(this));
		}
		
		this.newsletterInit();
		this.newsinput.next('a').observe('click', this.onNewsletterClicked.bind(this));
	},
	
	newsletterInit: function() {
		this.newsinput.observe('focus', this.onNewsletterClicked.bind(this));
	},
	
	closeOnglet: function(onglet, content, force) {
		var zclose = (force==true) ? force : !onglet.hasClassName('cssclass_over');
		if (zclose==true) {
			onglet.removeClassName('cssclass_selected');
			onglet.removeClassName('cssclass_over');
			if (content!=null) {
				content.removeClassName('cssclass_selected');
				content.hide();
			}
		}
		this.clearMouseOutTimeOut();
		return zclose;
	},
	
	openOnglet: function(onglet, content, openedonglet, openedcontent) {
		if (openedonglet!=null) this.closeOnglet(openedonglet,openedcontent,true);
		if (this.selected!=null) this.selected.removeClassName('cssclass_selected_deep');
		onglet.addClassName('cssclass_selected');
		if (content!=null) {
			content.addClassName('cssclass_selected');
			content.show();
		}
		this.clearMouseOutTimeOut();
	},
	
	onCloseClicked: function(event) {
		this.closeOpened(true);
	},
	
	closeOpened: function(force) {
		var zopenedonglet = this.ongletcontainer.down('div.cssclass_onglet.cssclass_selected');
		var zopenedcontent = this.contentcontainer.down('div.cssclass_onglet_content.cssclass_selected');
		if (zopenedonglet!=null) {
			var zclosed = this.closeOnglet(zopenedonglet, zopenedcontent, force);
			if ( (zclosed==true) && (this.selected!=null) ) this.selected.addClassName('cssclass_selected_deep');
		}
	},
	
	onContentMouseOut: function(event) {
		this.timeout = window.setTimeout(function() { ecommerce.topnavbar.closeOpened(false) ; }, 2500);
	},
	
	onContentMouseOver: function(event) {
		this.clearMouseOutTimeOut();
	},
	
	clearMouseOutTimeOut: function() {
		if (this.timeout!=null) {
			window.clearTimeout(this.timeout);
			this.timeout = null;
		}
	},
	
	onNewsletterClicked: function(event) {
		event.stop();
		this.newsinput.stopObserving('focus');
		
		ecommerce.newsletter.open();
	},
	
	updateCartAnchor: function() {
		this.cartanchor.addClassName('cssclass_selected');
		this.cartanchor.writeAttribute('href','/oo/');
		this.cartanchor.writeAttribute('onclick','');
		this.cartanchor.writeAttribute('title',ecommerce.utils.translate('Cliquez ici pour voir le contenu de votre panier ou valider votre commande#View cart or checkout'));
	}
	
});

var topnavbarMarques = Class.create({

	initialize: function(topnavbar) {
		this.container = topnavbar.contentcontainer.down('div.cssclass_onglet_content.cssclass_marques');
		this.index = this.container.down('div.cssclass_marque_index');
		this.logos = this.container.down('div.cssclass_marque_logos');
		this.shops = this.container.down('div.cssclass_marque_shops');
		if (this.shops!=null) this.registerShopsCallBacks();
		
		if (this.index!=null) this.registerIndexCallBacks();
		if (this.logos!=null) {
			this.registerLogosCallBacks();
			this.logosPE = this.initLogosPeriodicalExecuter();
		} else {
			this.logosPE = null;
		}
		this.inactivitytimeout = null;
	},
	
	registerIndexCallBacks: function() {
		var zlettre;
		var zlettres = this.index.select('li.cssclass_marquelettre');
		var nb_lettres = (zlettres!=null) ? zlettres.length : 0 ;
		for (var i=0 ; i<nb_lettres; i++) {
			zlettre = zlettres[i] ;
			zlettre.observe('click', this.onIndexLettreClicked.bind(this));
		}
		
		var znavbutton;
		var znavbuttons = this.index.select('a.cssclass_linenav');
		var nb_navbuttons = (znavbuttons!=null) ? znavbuttons.length : 0 ;
		for (var i=0 ; i<nb_navbuttons; i++) {
			znavbutton = znavbuttons[i] ;
			znavbutton.observe('click', this.onIndexNavClicked.bind(this));
		}
	},
	
	registerLogosCallBacks: function() {
		var znavbutton;
		var znavbuttons = this.logos.select('a.cssclass_linenav');
		var nb_navbuttons = (znavbuttons!=null) ? znavbuttons.length : 0 ;
		for (var i=0 ; i<nb_navbuttons; i++) {
			znavbutton = znavbuttons[i] ;
			znavbutton.observe('click', this.onLogosNavClicked.bind(this));
		}
	},
	
	registerShopsCallBacks: function() {
		var zshop;
		var zshops = this.shops.select('li.cssclass_marque_shop');
		var nb_shops = (zshops!=null) ? zshops.length : 0 ;
		for (var i=0 ; i<nb_shops; i++) {
			zshop = zshops[i] ;
			zshop.observe('click', this.onShopClicked.bind(this));
		}
	},

	initLogosPeriodicalExecuter: function() {
		if (this.logosPE!=null) {
			this.logosPE.stop();
			this.logosPE = null;
		}
		this.logosPE = new PeriodicalExecuter(function(pe) { ecommerce.topnavbar.marquesmanager.moveLogo('next','auto'); },2);
		return this.logosPE;
	},
	
	onIndexLettreClicked: function(event) {
		var element = Event.element(event);
		var zleft_offset = 0;
		var classstr = 'cssclass_lettre'+element.innerHTML.toLowerCase();
		var zdiv = this.index.down('div.cssclass_marques');
		
		zul = zdiv.select('ul.'+classstr)[0];
		zuls =  zdiv.select('ul');
		azuls =  zdiv.select('ul.active');
		azuls.each(function(li) { li.removeClassName('active'); });
		lastzul = zuls[zuls.length-1];
		maxoffst = lastzul.positionedOffset().left-(lastzul.getDimensions().width*4);
		offst = Math.max(0 - zul.positionedOffset().left,0 - maxoffst);
		zdiv.setStyle({ left: (offst+zleft_offset)+'px' });
		zul.highlight({ startcolor: '#FE9595' });
		zul.addClassName('active');
		
		var zprev = this.index.down('div.cssclass_linenav').down('a.cssclass_prev');
		if (offst<0) {
			zprev.show();
		} else {
			zprev.hide();
		}
		var znext = this.index.down('div.cssclass_linenav').down('a.cssclass_next');
		if (offst>0-maxoffst) {
			znext.show();
		} else {
			znext.hide();
		}
	},
	
	onIndexNavClicked: function(event) {
		var element = Event.element(event);
		var zleft_offset = 0;
		var zdiv = this.index.down('div.cssclass_marques');
		var zuls = zdiv.select('ul');
		var azuls = zdiv.select('ul.active');
		azuls.each(function(li) { li.removeClassName('active'); });
		var lastzul = zuls[zuls.length-1];
		var ul_width = lastzul.getDimensions().width;
		var maxoffst = lastzul.positionedOffset().left-(ul_width*4);
		if (element.hasClassName('cssclass_next')) {
			offst = Math.max(zdiv.positionedOffset().left-(ul_width*5),0 - maxoffst);
			zdiv.setStyle({ left: (offst+zleft_offset)+'px' });
			element.previous('a.cssclass_prev').show();
			if (Math.abs(offst) == maxoffst) {
				element.hide();
			}
		} else {
			offst = Math.min(zdiv.positionedOffset().left+(ul_width*5),0);
			zdiv.setStyle({ left: (offst+zleft_offset)+'px' });
			element.next('a.cssclass_next').show();
			if (Math.abs(offst) == zleft_offset) {
				element.hide();
			}
		}
	},
	
	onLogosNavClicked: function(event) {
		var element = Event.element(event);
		var direction = (element.hasClassName('cssclass_prev')) ? 'prev' : 'next' ;
		if (this.logosPE!=null) {
			this.logosPE.stop();
			this.logosPE = null;
			this.resetInactivityTimeOut();
		}
		
		this.moveLogo(direction,'click');
	},
	
	resetInactivityTimeOut: function() {
		if (this.inactivitytimeout!=null) {
			window.clearTimeout(this.inactivitytimeout);
			this.inactivitytimeout = null;
		}
		this.inactivitytimeout = window.setTimeout(function() { ecommerce.topnavbar.marquesmanager.initLogosPeriodicalExecuter() ; }, 2000);
	},
	
	moveLogo: function(direction, mode) {
		var zdiv = this.logos.down('div.cssclass_marque_list').down('div');
		var zfirst = zdiv.down('a.cssclass_first');
		var zlast = zdiv.down('a.cssclass_last');
		var znext = ( direction=='next' ) ? zfirst.next('a') : zlast ;
		
		this.logos.down('a.cssclass_linenav.cssclass_next').stopObserving('click');
		this.logos.down('a.cssclass_linenav.cssclass_prev').stopObserving('click');
		
		if (znext!=null) {
			var zoffset = ( direction=='next' ) ? 0-zfirst.getHeight() : znext.getHeight() ;
			if (zoffset!=0) {
				zfirst.removeClassName('cssclass_first');
				znext.addClassName('cssclass_first');
				
				if (direction=='next') {
					zlast.removeClassName('cssclass_last');
					var zclone = zfirst.cloneNode(true);
					zclone.addClassName('cssclass_last');
					zdiv.insert({ bottom: zclone });
					new Effect.Fade(zfirst, { afterFinish: function() { zfirst.remove(); } });
					
				} else {
					var zprevious = zlast.previous('a');
					if (zprevious!=null) {
						zlast.removeClassName('cssclass_last');
						zprevious.addClassName('cssclass_last');
						zlast = zlast.remove();
						zlast.addClassName('cssclass_first');
						zlast.hide();
						zdiv.insert({ top: zlast });
						new Effect.Appear(zdiv.down('a.cssclass_first'));
					}
				}
			}
		}
		
		this.logos.down('a.cssclass_linenav.cssclass_next').observe('click', this.onLogosNavClicked.bind(this));
		this.logos.down('a.cssclass_linenav.cssclass_prev').observe('click', this.onLogosNavClicked.bind(this));
	},
	
	onShopClicked: function(event) {
		var element = Event.element(event);
		var za, zli;
		
		if (element.tagName.toLowerCase()=='a') {
			za = element;
			zli = element.up('li');
		} else if (element.tagName.toLowerCase()=='li') {
			zli = element;
			za = element.down('a');
		} else {
			return ;
		}
		
		var zid = zli.readAttribute('id');
		if (zid!=null) {
			zid = 'uc' + zid.gsub(/[^0-9]/,'');
		} else {
			zid = '';
		}
		
		zli.addClassName('cssclass_ajaxloader');
		new Ajax.Request('/pc/ajax_pc_callback.php?action=topnavbar_marque', {
			method: 'post',
  			parameters: { t: zid },
			onComplete: function(transport) {
				var zresp = transport.responseXML.documentElement;
				ecommerce.topnavbar.marquesmanager.update(zresp);
				zli.siblings().each(function(el) { el.removeClassName('cssclass_selected'); });
				zli.removeClassName('cssclass_ajaxloader');
				zli.addClassName('cssclass_selected');
			}
		});
	},
	
	update: function(zxml) {
		var zindexcontent = zxml.getElementsByTagName('html_index')[0];
		var zlogoscontent = zxml.getElementsByTagName('html_logos')[0];
		if (navigator.appName == 'Microsoft Internet Explorer') {
			zindexcontent = zindexcontent.text;
			zlogoscontent = zlogoscontent.text;
		} else {
			zindexcontent = zindexcontent.textContent;
			zlogoscontent = zlogoscontent.textContent;
		}
		this.index.update(zindexcontent);
		this.logos.update(zlogoscontent);

		if (this.index!=null) this.registerIndexCallBacks();
		if (this.logos!=null) {
			this.registerLogosCallBacks();
			this.logosPE = this.initLogosPeriodicalExecuter();
		} else {
			this.logosPE = null;
		}
		this.inactivitytimeout = null;
	}
	
});

var topnavbarLicences = Class.create({
	
	initialize: function(topnavbar) {
		this.container = topnavbar.contentcontainer.down('div.cssclass_onglet_content.cssclass_licences');
		this.latest = this.container.down('div.cssclass_licence_latest');
		
		if (this.latest!=null) {
			this.registerLatestCallBacks();
		}
	},

	registerLatestCallBacks: function() {
		var znavbutton;
		var znavbuttons = this.latest.select('a.cssclass_linenav');
		var nb_navbuttons = (znavbuttons!=null) ? znavbuttons.length : 0 ;
		for (var i=0 ; i<nb_navbuttons; i++) {
			znavbutton = znavbuttons[i] ;
			znavbutton.observe('click', this.onLatestNavClicked.bind(this));
		}
	},
	
	onLatestNavClicked: function(event) {
		var element = Event.element(event);
		var direction = (element.hasClassName('cssclass_prev')) ? 'prev' : 'next' ;
		this.moveLatest(direction,'click');
	},
	
	moveLatest: function(direction, mode) {
		var zdiv = this.latest.down('div.cssclass_licence_list').down('div');
		var zfirst = zdiv.down('a.cssclass_first');
		var zlast = zdiv.down('a.cssclass_last');
		var znext = ( direction=='next' ) ? zfirst.next('a') : zlast ;
		
		this.latest.down('a.cssclass_linenav.cssclass_next').stopObserving('click');
		this.latest.down('a.cssclass_linenav.cssclass_prev').stopObserving('click');
		
		if (znext!=null) {
			var zoffset = ( direction=='next' ) ? 0-zfirst.getHeight() : znext.getHeight() ;
			if (zoffset!=0) {
				zfirst.removeClassName('cssclass_first');
				znext.addClassName('cssclass_first');
				
				if (direction=='next') {
					zlast.removeClassName('cssclass_last');
					var zclone = zfirst.cloneNode(true);
					zclone.addClassName('cssclass_last');
					zdiv.insert({ bottom: zclone });
					new Effect.Fade(zfirst, { afterFinish: function() { zfirst.remove(); } });
					
				} else {
					var zprevious = zlast.previous('a');
					if (zprevious!=null) {
						zlast.removeClassName('cssclass_last');
						zprevious.addClassName('cssclass_last');
						zlast = zlast.remove();
						zlast.addClassName('cssclass_first');
						zlast.hide();
						zdiv.insert({ top: zlast });
						new Effect.Appear(zdiv.down('a.cssclass_first'));
					}
				}
			}
		}
		
		this.latest.down('a.cssclass_linenav.cssclass_next').observe('click', this.onLatestNavClicked.bind(this));
		this.latest.down('a.cssclass_linenav.cssclass_prev').observe('click', this.onLatestNavClicked.bind(this));
	}
	
});

var topnavbarSearch = Class.create({
	
	initialize: function(topnavbar) {
		this.elem = topnavbar.elem.next('div#cssid_searchengine');
		this.container = this.elem.down('div.cssclass_content');
		this.keywords_default = ecommerce.utils.translate('mots-clefs#keywords');
		if (this.container!=null) {
			this.form       = this.container.down('form');
			this.keywords   = this.container.down('input[type=text]');
			this.catalogues = this.container.down('select[name=catalogue_id]');
			this.marques    = this.container.down('select[name=marque_id]');
			this.budgets    = this.container.down('select[name=budget]');
			this.avs        = this.container.select('input[name=av]');
			this.opener     = this.container.down('a.cssclass_open');
			this.closer     = this.container.down('a.cssclass_close');
			this.counter    = this.container.down('a.cssclass_results');
			this.autocompleter = new Ajax.Autocompleter(this.keywords,
										   			    this.keywords.next('div'),
										   			    '/pc/ajax_pc_callback.php?action=product_search',
										   			    { paramName: 'keywords',
										   			      minChars: 3,
										   			      callback: function(input,query) {
										   			      	var zq = ecommerce.topnavbar.searchmanager.prepareRequest();
										   			      	return(zq.toQueryString());
										   			      },
										   			      afterUpdateElement: function(input,li) {
										   			      	if (li.id.length>0) {
										   			      		window.location.href = li.id;
										   			      	}
										   			      },
										   			      onCreate: function(t) {
										   			      	ecommerce.topnavbar.searchmanager.keywords.addClassName('cssclass_ajaxloader');
										   			      },
										   			      onSuccess: function(transport) {
										   			      	ecommerce.topnavbar.searchmanager.keywords.removeClassName('cssclass_ajaxloader');
										   			      	var zxml = transport.responseXML.documentElement;
										   			      	if (zxml!=null) {
										   			      		ecommerce.topnavbar.searchmanager.updateNbResults(zxml.getAttribute('nb_packages'),zxml.getAttribute('url'));
										   			      		ecommerce.analytics.trackEvent('search', 'autocomplete', ecommerce.topnavbar.searchmanager.keywords.value, zxml.getAttribute('nb_packages'));
										   			      	}
										   			      	
										   			      }});
			if (this.keywords.value.length==0) this.keywords.value = this.keywords_default ;
			this.registerLatestCallBacks();
		}
	},
	
	registerLatestCallBacks: function() {
		this.form.observe('submit', this.onSearchSubmit.bind(this));
		this.form.down('a.cssclass_submit').observe('click', this.onSearchSubmit.bind(this));
		this.keywords.observe('focus', this.onKeywordsEvent.bind(this));
		this.keywords.observe('blur',  this.onKeywordsEvent.bind(this));
		this.catalogues.observe('change', this.onChangeEvent.bind(this));
		this.marques.observe('change', this.onChangeEvent.bind(this));
		this.budgets.observe('change', this.onChangeEvent.bind(this));
		var nb_avs = this.avs.length;
		for (var i=0 ; i<nb_avs; i++) {
			this.avs[i].observe('change', this.onChangeEvent.bind(this));
		}
		this.opener.observe('click', this.onOpenEvent.bind(this));
		this.closer.observe('click', this.onCloseEvent.bind(this));
	},
	
	prepareRequest: function() {
		var keywords     = this.keywords.value.strip() ;
		var catalogue_id = this.catalogues.options[this.catalogues.selectedIndex].value ;
		var marque_id    = this.marques.options[this.marques.selectedIndex].value ;
		var budget       = this.budgets.options[this.budgets.selectedIndex].value ;
		var av           = this.avs[1].checked ;
		
		keywords = (keywords==this.keywords_default) ? '' : keywords ;
		
		var i = '';
		var j = '';
		var k = '';
		var res = new Hash();
		
		if (catalogue_id.length>0) {
			i = 'uc' + catalogue_id ;
			catalogue_id = '' ;
			
		} else if (marque_id.length>0) {
			i = 'um' + marque_id ;
			marque_id = '' ;
			
		} else if (keywords.length>0) {
			i = 'r' + keywords ;
			keywords = '' ;
			
		}
		
		if (i.length>0) res.set('i',i);
		
		if (marque_id.length>0) {
			j = 'um' + marque_id ;
			marque_id = '' ;
			
		} else if (keywords.length>0) {
			j = 'r' + keywords ;
			keywords = '' ;
			
		}
		
		if (j.length>0) res.set('j',j);
		
		k = '' ;
		k_sep = '' ;
		if (keywords.length>0) {
			k = k + k_sep + 'r' + keywords ;
			k_sep = ':';
			keywords = '' ;
		}

		if (budget.length>0) {
			k = k + k_sep  + budget ;
			k_sep = ':';
			budget = '' ;
		}
		
		if (av==true) {
			k = k + k_sep  + 'a1' ;
			k_sep = ':';
			budget = '' ;
		}
		
		if (k.length>0) res.set('k',k);
		
		return res ;
	},
	
	onKeywordsEvent: function(event) {
		switch (event.type) {
			case 'focus':
				if (this.keywords.value==this.keywords_default) this.keywords.value = '' ;
				break;
			case 'blur':
				if (this.keywords.value.length==0) {
					this.keywords.value = this.keywords_default ;
					this.requestNbResults(false) ;
				}
				break;
		}
	},
	
	onChangeEvent: function(event) {
		var element = Event.element(event) ;
		var zcat    = element.readAttribute('name') ;
		zcat = (zcat!=null) ? zcat=='catalogue_id' : false ;
		this.requestNbResults(zcat) ;
	},
	
	requestNbResults: function(is_catalogue) {
		params = this.prepareRequest();
		if (params.values().length>0) {
			new Ajax.Request('/pc/ajax_pc_callback.php?action=product_search_nb', {
								method: 'post',
					  			parameters: params,
								onComplete: function(transport) {
									var zxml     = transport.responseXML.documentElement;
									var zsummary = zxml.getElementsByTagName('summary')[0];
									var znb      = parseInt(zsummary.getAttribute('nb_packages'));
									var zurl     = zsummary.getAttribute('url');
									ecommerce.topnavbar.searchmanager.updateNbResults(znb,zurl);
									if (is_catalogue==true) {
										ecommerce.topnavbar.searchmanager.updateMarques(zxml.getElementsByTagName('marque_ids')[0]);
									}
								}
								});
		} else {
			this.updateNbResults(null);
		}
	},
	
	updateMarques: function(ids) {
		var zids_str, zids_arr, zmarque_id;
		var nb_zmarques = this.marques.options.length;
		
		if (ids==null) {
			for (var i=1 ; i<nb_zmarques ; i++) {
				this.marques.options[i].show() ;
			}
		} else {
			if (navigator.appName == 'Microsoft Internet Explorer') {
				zids_str = ids.text.strip();
			} else {
				zids_str = ids.textContent.strip();
			}
			if (zids_str.length>0) {
				zids_str = zids_str.substr(0,zids_str.length-1);
			}
			zid_arr = zids_str.split(',');
			for (var i=1 ; i<nb_zmarques ; i++) {
				zmarque_id = this.marques.options[i].value ;
				if (zid_arr.include(zmarque_id)) {
					this.marques.options[i].show() ;
				} else {
					this.marques.options[i].hide() ;
				}
			}
		}
	},
	
	updateNbResults: function(znb,zurl) {
		if (znb==null) {
			this.counter.update('');
			this.counter.writeAttribute('href', 'javascript:void(0);');
			
		} else if (znb>1) {
			this.counter.update('' + znb + ' ' + ecommerce.utils.translate('résultats#results'));
			this.counter.writeAttribute('href', zurl);
			
		} else if (znb>0) {
			this.counter.update('' + znb + ' ' + ecommerce.utils.translate('résultat#result'));
			this.counter.writeAttribute('href', zurl);
			
		} else {
			this.counter.update(ecommerce.utils.translate('Aucun résultat#No result'));
			this.counter.writeAttribute('href', 'javascript:void(0);');
			
		}
	},
	
	onOpenEvent: function(event) {
		this.container.removeClassName('cssclass_small');
		this.container.addClassName('cssclass_big');
	},
	
	onCloseEvent: function(event) {
		this.container.removeClassName('cssclass_big');
		this.container.addClassName('cssclass_small');
		var change = false;
		if (this.marques.selectedIndex>0) {
			this.marques.selectedIndex = 0;
			change = true;
		}
		if (this.budgets.selectedIndex>0) {
			this.budgets.selectedIndex = 0;
			change = true;
		}
		if (this.avs[0].checked!=true) {
			this.avs[0].checked = true;
			change = true;
		}
		if (change==true) this.requestNbResults(false);
	},
	
	onSearchSubmit: function(event) {
		Event.stop(event);
		var element = Event.element(event);
		
		params = this.prepareRequest();
		
		if (params.values().length>0) {
			new Ajax.Request('/pc/ajax_pc_callback.php?action=product_search_nb', {
								method: 'post',
					  			parameters: params,
								onComplete: function(transport) {
									var zxml = transport.responseXML.documentElement;
									var zsummary = zxml.getElementsByTagName('summary')[0];
									if (parseInt(zsummary.getAttribute('nb_packages'))>0) {
										window.location.href = zsummary.getAttribute('url');
									} else {
										alert(ecommerce.utils.translate('Aucun résultat pour cette recherche#No result for this search'));
									}
								}
								});
		} else {
			alert(ecommerce.utils.translate('Veuillez renseigner au moins un critère de recherche#Please enter at least one search criteria'));
			this.keywords.focus();
			
		}
	}
	
});