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);
		};
	};
	
/* Initialisation des variables globales
--------------------------------------------------------------------*/
	var loginBoxOpen = false;
	
/* Toggle la boite de login 
--------------------------------------------------------------------*/
	var toggleLoginBox = function(){
		var loginBox = $('loginbox');
		var loginBtn = $('me_connecter');
		
		loginBtn.toggleClass('on');
		
		if(!loginBoxOpen){
			loginBox.setStyle('display', 'block');
			$('TopEmail').focus();
			loginBoxOpen = true;
		}
		else{
			loginBox.setStyle('display', 'none');
			$('form_login').setStyle('display', 'block');
			$('form_forgot').setStyle('display', 'none');
			loginBoxOpen = false;
		}
	};
	
/* Ouvre un popup
--------------------------------------------------------------------*/
	var PagingPopUpWin = 0;
	var PagingPopUpWindow = function() {
		var popupName = 'PagingPopUpWin';
		var URLStr = arguments[0];
		var left = arguments[1];
		var top = arguments[2];
		var width = arguments[3];
		var height = arguments[4];
		
		if (arguments.length == 6) {popupName = arguments[5]};
		if (left == 'mid') {left = (screen.width-width)/2};
		if (top == 'mid') {top = (screen.height-height)/2};
		if(PagingPopUpWin) {
			if(!PagingPopUpWin.closed) PagingPopUpWin.close();
		};
		PagingPopUpWin = open(URLStr, popupName, 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
	}
	
/* Functions add AJAX du cart
--------------------------------------------------------------------*/
	var AjaxCart_Add = function(IdClient,Qty,IdProduit,IdProducteur,IdFormat){
		var mooXhr = new Request.JSON({
			url: '/ajax/cartEdit.asp',
			link: 'chain',
			noCache: true,
			onRequest: function(){
			},
			onSuccess: function(StringJSON,responseText){
				updateCartTotal(StringJSON);
				updateHeaderCart(StringJSON);
				if(StringJSON.ErrorMessage!=''){
					injectErrorMessage('error', StringJSON.ErrorMessage);
				}
				else{
					injectErrorMessage('info', 'Un item a été ajouté à votre panier. <a href="/panier/panier.asp" title="Cliquez ici pour voir votre panier">Cliquez ici<' + '/a> pour voir votre panier.');
				}
			},
			onFailure: function(response){
				injectErrorMessage('error', 'Une erreur s\'est produite lors de l\'ajout au panier.');
			}
		});
		
		if(Qty>0){
			mooXhr.get({
				'IdProducteur' : IdProducteur,
				'IdFormat' : IdFormat,
				'IdProduit' : IdProduit,
				'Qty' : Qty,
				'idClient': IdClient,
				'a' : 'add'
			});
		}
		else{
			// Erreur quantité.
		}
	};
	
/* Functions edit AJAX du cart
--------------------------------------------------------------------*/
	var AjaxCart_Edit = function(IdClient,Qty,IdCItem,Row){
		var mooXhr = new Request.JSON({
			url: '/ajax/cartEdit.asp',
			link: 'chain',
			noCache: true,
			onRequest: function(){
				
			},
			onSuccess: function(StringJSON,responseText){
				updateCartTotal(StringJSON);
				updateHeaderCart(StringJSON);
				injectErrorMessage('info', 'Les modifications au panier ont été enregistrées.');
			},
			onFailure: function(response){
				injectErrorMessage('error', 'Une erreur s\'est produite lors de la sauvegarde du panier.');
			}
		});
		
		if(Qty>0){
			mooXhr.get({
				'qty' : Qty,
				'idCItem' : IdCItem,
				'idClient' : IdClient,
				'a' : 'mod'
			});
		}
		else{
			AjaxCart_Delete(IdClient,IdCItem,Row);
		}
	};
	
	
/* Functions edit AJAX du cart PourPlusieurs Items
--------------------------------------------------------------------*/
	var AjaxCart_EditTout = function(IdClient,ChaineQty,ChaineCItem){
		var mooXhr = new Request.JSON({
			url: '/ajax/cartEdit.asp',
			link: 'chain',
			noCache: true,
			onRequest: function(){
				
			},
			onSuccess: function(StringJSON,responseText){
				updateCartTotal(StringJSON);
				updateHeaderCart(StringJSON);
				//injectErrorMessage('info', 'Les modifications au panier ont été enregistrées.');
			},
			onFailure: function(response){
				//injectErrorMessage('error', 'Une erreur s\'est produite lors de la sauvegarde du panier.');
			}
		});
		
		mooXhr.get({
			'ChaineQty' : ChaineQty,
			'ChaineCItem' : ChaineCItem,
			'idClient' : IdClient,
			'a' : 'modtout'
		});
	};
	
/* Functions Comfirmation AJAX du cart 
--------------------------------------------------------------------*/
	var AjaxCart_Confirmation = function(IdClient,nbItem){
		var mooXhr = new Request.JSON({
			url: '/ajax/cartEdit.asp',
			link: 'chain',
			noCache: true,
			onRequest: function(){
				//alert('test');
			},
			onSuccess: function(StringJSON,responseText){
				$('Panier').submit();
			},
			onFailure: function(response){
				//alert('failure');
			}
		});		
		mooXhr.get({
			'idClient' : IdClient,
			'nbItem' : nbItem,
			'a' : 'confirm'
		});	
	};
	
/* Functions delete AJAX du cart
--------------------------------------------------------------------*/
	var AjaxCart_Delete = function(IdClient,IdCItem,Row){
		if(confirm('Êtes-vous certain de vouloir retirer cet item du panier?')){
			var mooXhr = new Request.JSON({
				url: '/ajax/cartEdit.asp',
				link: 'chain',
				noCache: true,
				onRequest: function(){
					disableTableRow(Row);
				},
				onSuccess: function(StringJSON,responseText){
					deletedItems = deletedItems + 1;
					if(deletedItems = problemItems&&!btnEnabled){
						enableNextButton(Row);
					};
					updateCartTotal(StringJSON);
					updateHeaderCart(StringJSON);
					removeTableRow(Row);
					
					if(StringJSON.QtyPanier==0){
						getEmptyCartUi();
					};
				},
				onFailure: function(response){
					injectErrorMessage('error', 'Une erreur s\'est produite lors de la suppression d\'un item.');
				}
			});
			
			mooXhr.get({
				'idCItem' : IdCItem,
				'idClient' : IdClient,
				'a' : 'del'
			});
		};
	};
	
	var enableNextButton = function(row){
		var etape_suivante = $('etape_suivante');
		btnEnabled = true;
		removeTableRow(row.getParent('table').getElement('tr.msgrow'));
		etape_suivante.disabled = false;
		etape_suivante.getParent('div').removeClass('nextoff');
	};
	
/* Function qui load l'interface de panier vide - Ajax
--------------------------------------------------------------------*/
	var getEmptyCartUi = function(){
		var mooXhr = new Request.HTML({
			url: '/ui/cartEmpty.asp',
			link: 'chain',
			noCache: true,
			onRequest: function(){
				
			},
			onSuccess: function(tree,elements,html,js){
				var Content = $('cart_content');
				var eventChain = new Chain();
				
				Content.set('morph', {
					duration: 500,
					transition: Fx.Transitions.Quad.easeInOut,
					onComplete: function(){ eventChain.callChain(); }
				});
				
				eventChain.chain(
					function(){ Content.morph({'opacity': 0}) },
					function(){ Content.set('html', html); eventChain.callChain(); },
					function(){ Content.morph({'opacity': 1}) }
				);
				
				eventChain.callChain();
			},
			onFailure: function(response){
				
			}
		});
		
		mooXhr.get({
			'xhr': true
		});
	};

/* Update du tableau de totaux dans le cart
--------------------------------------------------------------------*/
	var updateCartTotal = function(StringJSON){
		if($('cart_total')){
			$('data_SousTotal').set('text',StringJSON.SousTotal + '$');
			$('data_Tps').set('text',StringJSON.Tps + '$');
			$('data_Tvq').set('text',StringJSON.Tvq + '$');
			$('data_Total').set('text',StringJSON.PrixTotal + '$');
		}
	};
	
/* Update du mini-cart dans le header
--------------------------------------------------------------------*/
	var updateHeaderCart = function(StringJSON){
		if($('cartdetailsholder')){
			var Ajouts = StringJSON.DerniersAjouts;
			Ajouts = Ajouts.replace('&quot;','"');
			Ajouts = Ajouts.replace('&quot;','"');

			$('cart_update').set('html',Ajouts);
			$('data_HeaderQty').set('text',StringJSON.QtyPanier + ' article(s)');
			$('data_HeaderTotal').set('text',StringJSON.PrixTotal + ' $');
		};
	};
	
/* Disable une ligne du tableau (cart)
--------------------------------------------------------------------*/
	var disableTableRow = function(Row){
		
	};
	
/* Supression d'une ligne du tableau (cart)
--------------------------------------------------------------------*/
	var removeTableRow = function(Row){
		var eventChain = new Chain();
		
		Row.set('morph', {
			duration: 500,
			transition: Fx.Transitions.Quad.easeInOut,
			onComplete: function(){ eventChain.callChain(); }
		});
		
		eventChain.chain(
			function(){ Row.morph({'opacity': 0}) },
			function(){ Row.destroy() }
		);
		
		eventChain.callChain();
	};

/* Inject un message d'information ou d'erreur
--------------------------------------------------------------------*/
	var injectErrorMessage = function(type,msg){
		if(!type==''&&!msg==''){
			var menu = $('menu');
			var eventChain = new Chain();
			var errorMessages = new Element('div', {'id': 'errMessages', 'styles': { 'margin-top': '0px', 'margin-bottom': '0px', 'opacity': 0, 'height': '0px' }});
			var errorInfo = new Element('div', {'id': type, 'class': 'error'});
			var errorClose = new Element('div', {'id': 'errClose', 'class': 'close', 'html': '<a href="#" id="fermer_message" title="Fermer ce message"><img src="/images/spacer.gif" width="25" height="25" alt="Fermer ce message" /></a>'});
			var errorContent = new Element('div', {'id': 'errContent', 'class': 'content', 'html': msg});
			
			errorMessages.set('morph', {
				duration: 300,
				transition: Fx.Transitions.Quad.easeInOut,
				onComplete: function(){ eventChain.callChain(); }
			});
			
			eventChain.chain(
				function(){ errorMessages.morph({'height': '40px', 'margin-bottom': '10px'}) },
				function(){ errorMessages.morph({'opacity': 1}) }
			);
			
			errorMessages.inject(menu, 'after');
			errorInfo.inject(errorMessages);
			errorClose.inject(errorInfo);
			errorContent.inject(errorInfo);
			errorMessages.setStyle('display', 'block');
			eventChain.callChain();

			$('fermer_message').addEvent('click', function(event){
				event.stop();
				hideErrorMessage();
			});
		}
		(function(){ hideErrorMessage(); }).delay(6000);
	};
	
/* Hide le message d'information ou d'erreur
--------------------------------------------------------------------*/
	var hideErrorMessage = function(){
		var errorMessages = $('errMessages');
		if(errorMessages){
			var eventChain = new Chain();
			
			errorMessages.set('morph', {
				duration: 300,
				transition: Fx.Transitions.Quad.easeInOut,
				onComplete: function(){ eventChain.callChain(); }
			});
			
			eventChain.chain(
				function(){ errorMessages.morph({'opacity': 0}) },
				function(){ errorMessages.morph({'margin-top': '0px', 'margin-bottom': '0px'}) },
				function(){ errorMessages.morph({'height': '0px'}) },
				function(){ errorMessages.destroy() }
			);
			eventChain.callChain();
		};
	};

/* Ajuste la hauteur des elements d'une liste horizontale
--------------------------------------------------------------------*/
	var RowHeightCheat = function (ul,li,cols,padding){
		var list_items = $(ul).getElements(li);
		var heights = new Array();
		var maxheight = 0;
		var row = 0;
		var counter = 1;
		
		list_items.each(function(li,index){
			var index = index + 1;
			var height = li.getSize().y;
			if(height>=maxheight){
				maxheight = height;
			}
			
			if(index%cols==0){
				heights.push(maxheight);
				maxheight = 0;
			}
		});
	
		for(i=0; i<list_items.length; i++){
			var height = parseInt(heights[row]-padding);
			list_items[i].setStyle('height', height);
			if(counter%cols==0){
				row++;
			};
			counter++;
		}
		
		$(ul).setStyle('visibility', 'visible');
	};

/* Validation de champ numérique
--------------------------------------------------------------------*/
	var numericTextBoxValidation = function(sender){
		if (!sender.value.match(/^([0-9]+)$/)){
			sender.value = '1';
		};
	};

	
/* Fonction utile pour valider caractère saisie dans Qty
--------------------------------------------------------------------*/
	var isNumeric = function(sText){
		var ValidChars = "0123456789."; 
		var IsNumber=true; 
		var Char; 
		for (i = 0; i < sText.length && IsNumber == true; i++)
		{ 
			Char = sText.charAt(i); 
			if (ValidChars.indexOf(Char) == -1)
			{ 
				IsNumber = false; 
			} 
		} 
		return IsNumber; 
	};


function Tri(Champ)
{
	$('id_OrderBy').set('value',Champ);
	//alert(Champ);
	$('Panier').submit();
}
