omv.type = 'spans';

var MM_contentVersion = 8;
var plugin = (navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash']) ? navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin : 0;
if ( plugin ) {
	var words = navigator.plugins['Shockwave Flash'].description.split(' ');
	for (var i = 0; i < words.length; ++i){
		if (isNaN(parseInt(words[i])))
		continue;
		var MM_PluginVersion = words[i]; 
	};
	var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
}
else if (navigator.userAgent && navigator.userAgent.indexOf('MSIE')>=0 
   && (navigator.appVersion.indexOf('Win') != -1)) {
	document.write('<scr' + 'ipt language=vbscript\> \n');
	document.write("On Error Resume Next \n");
	document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\n');
	document.write('</' + 'scr' + 'ipt\> \n');
}

/* Load un SWFObject
--------------------------------------------------------------------*/
	var loadFlashElement = function(holder,replacement,path,name,width,height,backgroundColor){
		if(MM_FlashCanPlay){
			var so = new SWFObject(path,name,width,height,'8',backgroundColor);
				so.addParam('quality', 'high');
				so.addParam('wmode', 'transparent');
				so.write(holder);
		}
		else{
			$(holder).set('html', replacement);
		};
	};

/* Retourne le label associé à un input
--------------------------------------------------------------------*/
	var getLabel = function(input){
		if($defined(input)){
			var label = input.getParent('div').getElement('label');
			if($defined(label)){
				return label;
			};
		}else return false;
	};
	
/* Separe le contenu en plusieurs colonnes
--------------------------------------------------------------------*/
	var columnizer = function(holder,elements,cols){
		this.holder = $(holder);
		this.els = this.holder.getElements('.' + elements);
		this.colCounter = 0;
		this.cols = Array();
		
		for(var i = 0; i < cols; i++){
			var newCol = new Element('div', {
				'class': 'columnized',
				'id': 'col' + (i+1)
			}).inject(this.holder);
			this.cols.push(newCol);
		};
		
		this.els.each(function(item,index){
			if(this.colCounter==cols) this.colCounter = 0;
			this.colCounter++;
			item.inject(this.cols[this.colCounter-1]);
		});
	};
	
/*	Inject un message d'information ou d'erreur
--------------------------------------------------------------------*/
	var injectMessage = function(type,text){
		var publicMsg = new Element('div', {'id': 'public_msg', 'styles': { 'opacity': 0, 'height': '0px', 'padding-bottom': '0px' }}).adopt(
			new Element('div', {'id': 'public_msg_holder', 'class': (type!='') ? type : 'error'}).adopt(
				new Element('div', {'id': 'public_msg_texture', 'html': text})
			)
		);
		var eventChain = new Chain();
		var pageScroll = new Fx.Scroll($(document.body));
		
		publicMsg.set('morph', {
			duration: 500,
			transition: Fx.Transitions.Quad.easeInOut,
			onComplete: function(){ eventChain.callChain(); }
		});
		
		publicMsg.inject($('header'),'after');
		
		eventChain.chain(
			function(){ pageScroll.toTop(); eventChain.callChain(); },
			function(){ publicMsg.morph({'height': '59px', 'padding-bottom': '20px'}) },
			function(){ publicMsg.morph({'opacity': 1}) }
		);
		eventChain.callChain();
		
		(function(){ hideErrorMessage(); }).delay(15000);
	};
	
/*	Hide le message d'information ou d'erreur
--------------------------------------------------------------------*/
	var hideErrorMessage = function(){
		var errorMessages = $('public_msg');
		if(errorMessages){
			var eventChain = new Chain();
			
			errorMessages.set('morph', {
				duration: 500,
				transition: Fx.Transitions.Quad.easeInOut,
				onComplete: function(){ eventChain.callChain(); }
			});
			
			eventChain.chain(
				function(){ errorMessages.morph({'opacity': 0}) },
				function(){ errorMessages.morph({'height': '0px', 'padding-bottom': '0px'}) },
				function(){ errorMessages.destroy() }
			);
			eventChain.callChain();
		};
	};
	
/*	Validation du formulaire Conseiller Virtuel
--------------------------------------------------------------------*/
	var cvValidation = function(sender,scroll){
		omv.type = 'alert';
		this.isValid = omv.send(sender.getParent('div.cv_step'),'');
		this.validateStep2 = function(){
			this.isValid = false;
			this.publicCible = parseInt($('cv_tbx_PublicCible').get('value'));
			
			switch(this.publicCible){
				case 1:
					this.isValid = true;
					break;
					
				case 2:
					this.isValid = $('types_event').getElements('input').some(function(item, index){ return item.checked; });
					if(!this.isValid) alert('Vous devez choisir au moins un événement');
					break;
					
				case 3:
					this.isValid = $('cv_categories').getElements('input').some(function(item, index){ return item.checked; });
					if(!this.isValid) alert('Vous devez choisir au moins une catégorie');
					break;
			};
			
			return this.isValid;
		};
		
		if(sender.getParent('div.cv_step').get('id')=='cv_step_1'){
			this.isValid = this.validateStep2();
		};
		
		if(this.isValid){
			if(sender.get('rel')){
				scroll.toElement($(sender.get('rel')));
			};
		};
	};
	
/*	Add / delete de produits favoris
--------------------------------------------------------------------*/
	var handleFavoris = function(sender,id){
		var action = sender.get('rel');
		var props = {
			title: (action=='add') ? 'Retirer ce produit de ma boîte à idées' : 'Ajouter ce produit à ma boîte à idées',
			cssClass: (action=='add') ? 'fav_del' : 'fav_add',
			rel: (action=='add') ? 'delete' : 'add'
		};
		
		this.xhr = new Request({
			url: '/ajax/ajax.ProduitFavori.asp',
			link: 'chain',
			noCache: true,
			onRequest: function(){
			},
			onSuccess: function(text,xml){
				injectMessage('success',text);
				$('btn_favoris').set({
					'title': props.title,
					'text': props.title,
					'class': props.cssClass,
					'rel': props.rel
				});
			},
			onFailure: function(response){
				injectMessage('error',response.text);
			}
		});
		
		this.xhr.get({ 'action': action, 'id': id });
	};
	
/*	Load cart data
--------------------------------------------------------------------*/
	var loadCartData = function(){
		var dataHolder = $('qcart_empty');
		var loadingHolder = $('loading');
		
		new Request({
			url: '/ajax/ajax.CartData.asp',
			onRequest: function(){
			},
			onSuccess: function(text,xml){
				if(loadingHolder) loadingHolder.destroy();
				dataHolder.setStyle('display', 'block');
				cartDataText(text);
			},
			onFailure: function(response){
				if(loadingHolder) loadingHolder.destroy();
				dataHolder.setStyle('display', 'block');
				cartDataText(0);
			}
		}).get();
	};
	
/*	Format du texte pour loadCartData
--------------------------------------------------------------------*/
	var cartDataText = function(response){
		var finText;
		var dataHolder = $('qcart_empty');
		var nbItems = parseInt(response);
		var a = new Element('a', { 'href': cartLink }).inject(dataHolder);
		
		if(nbItems>0){
			finText = 'Votre panier contient ' + nbItems + ' item{?s?}';
			finText = (nbItems>1) ? finText.replace('{?s?}','s') : finText.replace('{?s?}','');
		}else{
			finText = 'Votre panier est vide';
		};
		
		a.set('text', finText);
	};
