/*--FUNCTIONS.JS--*/

function fieldFocus(element, value){
	if(typeof(value)=='undefined'){value = element.defaultValue;}
	if($(element).val() == value){
		$(element).val('');
	}
}

function fieldBlur(element, value){
	if(typeof(value)=='undefined'){value = element.defaultValue;}
	if($(element).val() == ''){
		$(element).val(value);
	}
}

function passwordFocus(element, value){
	if($(element).val() == value){
		if($(element).attr('type') == 'text'){
			$(element).hide();
			$(element).nextAll('input[type="password"]').show();
			$(element).nextAll('input[type="password"]').focus();
		}
	}
}

function passwordBlur(element, value){
	if($(element).val() == ''){
		if($(element).attr('type') == 'password'){
			$(element).prevAll('input[type="text"]').show();
			$(element).hide();
		}
		else if($(element).attr('type') == 'text'){
			$(element).val(value);
		}
	}
}

function verifMail(courriel) {
	for(var j=1;j<(courriel.length);j++){
		// si contient un '@'
		if(courriel.charAt(j)=='@'){
			// si le '@' n'est pas à la fin (dans les 3 dernier caractère qui sont résérvé au Nom de Domaine)
			if(j<(courriel.length-4)){
				// boucle cherchant le '.' avant les 2 dernier char
				for(var k=j+2;k<(courriel.length-2);k++){
					if(courriel.charAt(k)=='.') return true;
				}
			}
		}
	}
	return false ;
}

/*
 * verifLigneCaractere
 * 
 * @param texte, Le texte à traiter
 * @param nbLigne, nombre de ligne maximum
 * 
 * @return boolean
 */
function verifLigneCaractere(texte, nbLigne) {
	var tabTexte = texte.split("\n") ;
	if(tabTexte.length == 1) tabTexte = texte.split("\r") ;
	return (tabTexte.length <= 10) ? true : false ;
}

function printPage(elt){
	if($("#img_print_googlemap").length > 0) {
		var centreMap = map.getCenter() ;
		var northEastMap = map.getBounds().getNorthEast() ;
		var southWestMap = map.getBounds().getSouthWest() ;
		
		var reperes = "" ;
		var i = 0 ;
		for(m in markers_affiches) {
			if(markers_affiches[m].StoreLocator.longitude >= southWestMap.lat() && markers_affiches[m].StoreLocator.longitude <= northEastMap.lat() &&
					markers_affiches[m].StoreLocator.latitude >= southWestMap.lng() && markers_affiches[m].StoreLocator.latitude <= northEastMap.lng()) {
				if(i != 0) reperes += "|" ;
				reperes += markers_affiches[m].StoreLocator.longitude+","+markers_affiches[m].StoreLocator.latitude ;
				i++ ;
			}
		} 
		//alert(map.getZoom()) ;
		var img = '<img src="http://maps.google.com/maps/api/staticmap?center='+centreMap.lat()+','+centreMap.lng()+'&zoom='+map.getZoom()+'&size=800x400&maptype=roadmap&markers=icon:'+image_marker+'|size:mid|color:red|'+reperes+'&sensor=false" alt="Image fixe google" />' ;
		$("#img_print_googlemap").html(img+'<br />') ;
		//$("#img_print_googlemap").show() ;
	}
	if($("#checkout.history").length > 0) {
		$('#checkout h2').each(function(){
			$(this).addClass('noprint').next().hide();
			$(this).removeClass('active');
		});
		$(elt).parents('.section').find('h2').each(function(){
			$(this).removeClass('noprint').next().show();
			$(this).addClass('active');
		});
	}
	window.print();
	return false;
}

function showTab(target, trigger){
	if(!$(trigger).hasClass('active')){
	
		$(trigger).siblings('.active').removeClass('active');
		$('#'+target).siblings('.active').removeClass('active');
		
		$(trigger).addClass('active');
		$('#'+target).addClass('active');
	};
}

function displayMenu(toggler, parent, speed, transition){
	/*--------------------------------------------------------------------GENERATEUR DE CAROUSELS HORIZONTAL sous PtrototypeJS-----------------------------------------------------------------------------*/
	
	//	v1.0
	
	/*------Paramètres-----*/
		//[toggler]					==> ITEM du menu (onclick => this)
		//[parent]					==> ID du block parent au menu
		//[speed]					==> Durée de la transition (OPTIONNEL)
		//[transition]				==> Transition TRUE - FALSE (OPTIONNEL)
	/*------Paramètres-----*/
	/*------Structure HTML requise-----*/
	/*
		<div class="mainMenu">
			<dl>	
				<dt>
					<a href="#" class="content" onclick="return displayMenu(params);">MENU ITEM</a>
				</dt>
				<dd>
					SOUS-MENU
				</dd>
			</dl>
		</div>
	*/
	/*------Structure HTML requise-----*/
	
	if(typeof(transition) == 'undefined'){
		transition = false;
	}
	
	var parentDl = $(toggler).parents('dl');
	var siblingDd = $(toggler).parents('dl').find('dd');
	
	if(transition){
		if(!$('#'+parent).hasClass('processing')){
			if($(parentDl).hasClass('active')){
				$('#'+parent).addClass('processing');
				$(parentDl).removeClass('active');
				$(siblingDd).slideUp(
					(speed*1000),
					function(){
						$('#'+parent).removeClass('processing');
					}
				);
			}
			else{
				var previousDD = $('#'+parent+' dl.active dd')[0];
				if(typeof(previousDD) != 'undefined'){
					$(previousDD).slideUp(
						((speed/2)*1000),
						function(){
							$(previousDD).parents('dl').removeClass('active');
						}
					);
				}
				$('#'+parent).addClass('processing');
				$(parentDl).addClass('active');
				$(siblingDd).slideDown(
					(speed*1000),
					function(){
						$('#'+parent).removeClass('processing');
					}
				);
			}
		}
	}
	else{
		if($(parentDl).hasClass('active')){
			$(siblingDd).hide();
			$(parentDl).removeClass('active');
			return true ;
		}
		else{
			var previousDD = $('#'+parent+' dl.active dd')[0];
			if(typeof(previousDD) != 'undefined'){
				$(previousDD).hide();
				$(previousDD).parents('dl').removeClass('active');
			}
			$(siblingDd).show();
			$(parentDl).addClass('active');
		}
	}
	
	return false;
	
}

//greyBoxShow() : OUVERTURE GREYBOX
function greyBoxShow(mode, url, width, height, overflow, callback){
	//Si OVERLAY n'existe pas
	if(!$('#overlay').length){
		// On l'ajoute dynamiquement
		$('body').append('<div id="overlay" onclick="greyBoxHide();"></div>');
	}
	//Si GREYBOX n'existe pas
	if(!$('#greyBox').length){
		// On l'ajoute dynamiquement
		// greyBox			==> Positionnement en absolute centré
		// greyBoxContent	==> Contenus de la box
		// greyBoxLoader		==> Gif annimé de chargement
		// close			==> Div de fermeture
		$('body').append('<div id="greyBox"><div class="content" id="greyBoxContent"></div></div>');
	}
	
	if(typeof(callback)=='undefined'){var callback = function(){};}
	
	// On dimensionne la box suivant les paramètres passés
	$('#greyBoxContent').html('<div id="greyBoxLoader"></div>');
	if(typeof(overflow)!='undefined' && overflow==true){
		$('#greyBox').attr('style', '').css('width', width+'px');
		$('#greyBoxContent').attr('style', '').css('height', height+'px');
	}
	else{
		$('#greyBox').attr('style', '').css('width', width+'px');
		$('#greyBoxContent').attr('style', '');
	}
	// On centre la box suivant les dimensions passés
	$('#greyBox').css('left', '-'+(Math.ceil(width/2))+'px');
	
	// On dimensionne la taille de l'overlay sur IE6
	if(jQuery.browser.msie && jQuery.browser.version=="6.0"){
		windowHeightIeFix = $(document.body).height();
		if($(document.body).height() == 0){
			var windowHeightIeFix = 670;
		}
		$('#overlay').css('height',windowHeightIeFix+'px');
		$('select').hide();
	}
	
	// Mode de contenu à afficher
	switch(mode){
		// AJAX		==> Page ajax à charger
		case 'ajax':
			if(jQuery.browser.msie && jQuery.browser.version=="6.0"){
				$('#greyBoxContent').load(url,'',function(){
					callback();
					$('#overlay').show();
					$('#greyBox').show();
				});
			}
			else{
				$('#overlay').css('opacity','0');
				$('#overlay').show();
				$('#overlay').fadeTo('slow',0.5,function(){
					$('#greyBox').show();
					$('#greyBoxContent').load(url,'',function(){callback();});
				});
			}
			break;
		// Html		==> Texte à afficher
		case 'html':
			if(jQuery.browser.msie && jQuery.browser.version=="6.0"){
				$('#greyBoxContent').html(url);
				$('#overlay').show();
				$('#greyBox').show();
			}
			else{
				$('#overlay').css('opacity','0');
				$('#overlay').show();
				$('#overlay').fadeTo('slow',0.5,function(){
					$('#greyBox').show();
					$('#greyBoxContent').html(url);
				});
			}
			break;
		// IFRAME		==> Iframe ajax à afficher
		case 'iframe':
			var paddings = parseInt($('#greyBoxContent').css('padding-left')) + parseInt($('#greyBoxContent').css('padding-right'));
			$('#greyBoxContent').html('<iframe src="'+url+'" border="0" frameborder="0" width="'+(width-paddings)+'" height="'+height+'" allowTransparency="true"></iframe>');
			if(jQuery.browser.msie && jQuery.browser.version=="6.0"){
				$('#overlay').show();
				$('#greyBox').show();
			}
			else{
				$('#overlay').css('opacity','0');
				$('#overlay').show();
				$('#overlay').fadeTo('slow',0.5,function(){
					$('#greyBox').show();
				});
			}
			break;
		// YOUTUBE	==> Code video youtube à afficher
		case 'youtube':
			var paddings = parseInt($('#greyBoxContent').css('padding-left')) + parseInt($('#greyBoxContent').css('padding-right'));
			$('#greyBoxContent').html('<object width="'+(width-paddings)+'" height="'+height+'"><param name="movie" value="http://www.youtube.com/v/'+url+'&hl=fr_FR&fs=1&rel=0&color1=0x006699&color2=0x54abd6"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/'+url+'&hl=fr_FR&fs=1&rel=0&color1=0x006699&color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="'+(width-paddings)+'" height="'+height+'"></embed></object>');
			if(jQuery.browser.msie && jQuery.browser.version=="6.0"){
				$('#overlay').show();
				$('#greyBox').show();
			}
			else{
				$('#overlay').css('opacity','0');
				$('#overlay').show();
				$('#overlay').fadeTo('slow',0.5,function(){
					$('#greyBox').show();
				});
			}
			break;
		// DAILYMOTION	==> Code video dailymotion à afficher
		case 'dailymotion':
			var paddings = parseInt($('#greyBoxContent').css('padding-left')) + parseInt($('#greyBoxContent').css('padding-right'));
			$('#greyBoxContent').html('<object width="'+(width-paddings)+'" height="'+height+'"><param name="movie" value="http://www.dailymotion.com/swf/video/'+url+'"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed type="application/x-shockwave-flash" src="http://www.dailymotion.com/swf/video/'+url+'" width="'+(width-paddings)+'" height="'+height+'" allowfullscreen="true" allowscriptaccess="always"></embed></object>');
			if(jQuery.browser.msie && jQuery.browser.version=="6.0"){
				$('#overlay').show();
				$('#greyBox').show();
			}
			else{
				$('#overlay').css('opacity','0');
				$('#overlay').show();
				$('#overlay').fadeTo('slow',0.5,function(){
					$('#greyBox').show();
				});
			}
			break;
		// IMAGE		==> Image à afficher
		case 'image':
			var paddings = parseInt($('#greyBoxContent').css('padding-left')) + parseInt($('#greyBoxContent').css('padding-right'));
			$('#greyBox').css('width', (width+paddings)+'px').css('left', (parseInt($('#greyBox').css('left')) - (paddings/2))+'px');
			$('#greyBoxContent').html('<img src="'+url+'" alt="" />');
			if(jQuery.browser.msie && jQuery.browser.version=="6.0"){
				$('#overlay').show();
				$('#greyBox').show();
			}
			else{
				$('#overlay').css('opacity','0');
				$('#overlay').show();
				$('#overlay').fadeTo('slow',0.5,function(){
					$('#greyBox').show();
				});
			}
			break;
		default:
			break;
	}
	
	// On remonte le scroll en haut de page
	$(document).scrollTop(0);
	
	return false;
}

//greyBoxHide() : FERMETURE GREYBOX
function greyBoxHide(callback){
	if(typeof(callback)=='undefined'){var callback = function(){};}
	
	if(jQuery.browser.msie && jQuery.browser.version=="6.0"){
		$('#overlay').hide();
		$('#greyBox').hide();
		$('#greyBoxContent').html('');
		$('select').show();
		callback();
	}
	else{
		$('#greyBox').fadeOut('medium',function(){
			$('#greyBoxContent').html('');
			$('#overlay').fadeOut('fast',callback);
		});
	}
}

function greyBoxMessage(message){
	messagetmp = '<span onclick="greyBoxHide();" class="cancel">'+siteParams.translate.Fermer+'</span>';
	messagetmp += '<h1 class="title">'+siteParams.translate.Message+'</h1>';
	messagetmp += message;
	greyBoxShow('html',messagetmp,500,150,true);
}

function toggleMenu(trigger){
	if(!$(trigger).parent('li').hasClass('active') && !$('#ctxMenu').hasClass('running')){
		var duration = 400;
		$('#ctxMenu').addClass('running');
		if($(trigger).parent('li').siblings('li.active').children('ul').length > 0){
			$(trigger).parent('li').siblings('li.active').children('ul').slideUp(duration, function(){
				$(trigger).parent('li').siblings('li.active').removeClass('active');
				$(trigger).parent('li').children('ul').slideDown(duration, function(){
					$(trigger).parent('li').addClass('active');
					$('#ctxMenu').removeClass('running');
				});
			});
		}
		else {
			$(trigger).parent('li').siblings('li.active').removeClass('active');
			$(trigger).parent('li').children('ul').slideDown(duration, function(){
				$(trigger).parent('li').addClass('active');
				$('#ctxMenu').removeClass('running');
			});
		}
		/*** Pas de page enfant ***/
		if($(trigger).children('ul').length == 0){
			return true;
		}
	}
	else{
		if(!$('#ctxMenu').hasClass('running')){
			$(trigger).parent('li').children('ul').slideUp(duration, function(){
				$(trigger).parent('li').removeClass('active');
				$('#ctxMenu').removeClass('running');
			});
		}
	}
	return false;
}

function checkout_updateSection_addLoader(trigger, effet, message){
	if(typeof(effet)=='undefined'){effet = true;}
	if(typeof(message)=='undefined'){message = '';}
	divContent = $('#'+trigger+' .content:first');
	divContent.css('min-height', '100px').append('<div class="ajax-loader" id="ajax-loader" style="width:'+(divContent.outerWidth())+'px;height:'+(divContent.outerHeight())+'px;">'+message+'</div>');
	opacity = 0.6;
	if(message != ''){
		divContent.find('#ajax-loader').addClass('price').css('text-align','center').css('line-height',(divContent.outerHeight() - 50)+'px');
		opacity = 0.8;
	}
	if(effet)	{divContent.find('#ajax-loader').css('opacity', 0).show().fadeTo('fast', opacity);}
	else		{divContent.find('#ajax-loader').css('opacity', opacity).show();}
}
function checkout_updateSection_delLoader(trigger, effet){
	if(typeof(effet)=='undefined'){effet = true;}
	divContent = $('#'+trigger+' .content:first');
	if(effet){
		divContent.find('#ajax-loader').css('width', (divContent.outerWidth())+'px').css('height', (divContent.outerHeight())+'px').fadeOut('fast', function(){
			$(this).remove();
		});
	}
	else {divContent.find('#ajax-loader').remove();}
}
$.fn.addLoader = function(){
	this.css('position', 'relative').css('min-height', '100px').append('<div class="ajax-loader" id="ajax-loader" style="width:'+(this.outerWidth())+'px;height:'+(this.outerHeight())+'px;"></div>');
	$('#ajax-loader').css('opacity', 0.6).show()/*.fadeTo('fast', 0.6)*/;
	return this;
};
$.fn.delLoader = function(){
	$('#ajax-loader').remove();
	return this;
};

function checkout_updateSection(trigger, url){
	checkout_updateSection_addLoader(trigger);
	$('#'+trigger+' .content').load(url, function(){
		checkout_updateSection_delLoader(trigger);
	});
	return false;
}

function checkout_expandSection(trigger, target){
	var duration = 400;
	
	if($('#'+trigger).length){
	
		if(typeof(target) == 'undefined'){
			target = trigger;
			trigger = $('#checkout .section.focus')[0];
			trigger = trigger.id;
		}
	
		$('#'+trigger+' .content').slideUp(duration, function(){
			
			/*-SI on ne reviens pas sur une étape déjà validée-*/
			if(!$('#'+target).hasClass('passed')){
				/*-Actions Trigger-*/
				$('#'+trigger).attr('class', 'section passed');
				if(!$('#'+'edit_'+trigger).length){
					$('#'+trigger+' .title').prepend('<span id="edit_'+trigger+'" class="edit" onclick="checkout_expandSection(\''+trigger+'\')">'+siteParams.translate.Editer+'</span>');
				}
				/*-Actions Target-*/
				$('#'+target).attr('class', 'section focus');
			}
			/*-SINON-*/
			else{
				/*-Actions Trigger-*/
				$('#'+trigger).attr('class', 'section passed');
				/*-Actions Target-*/
				$('#'+target).attr('class', 'section focus');
			}
			$('#'+target+' .content').slideDown(duration);
			
		});
		
	}
	
	return false;
}

function showDetails(trigger){
	var duration = 400;
	
	if($(trigger).hasClass('active')){
		$(trigger).next().slideUp(duration);
		$(trigger).removeClass('active');
	}
	else{
		$(trigger).next().slideDown(duration);
		$(trigger).addClass('active');
	}
}
function removeOption(trigger){
	
	/*--Pour IE (pas d'effet car non-supporté)--*/
	if(jQuery.browser.msie){
		$(trigger).parents('tr').next().remove();
		$(trigger).parents('tr').prev().removeClass('remove-border');
		$(trigger).parents('tr').remove();
	}
	/*--Pour les autres navigateurs--*/
	else{
		$(trigger).parents('tr').fadeOut('fast', function(){
			$(trigger).parents('tr').next().remove();
			$(trigger).parents('tr').prev().removeClass('remove-border');
			$(trigger).parents('tr').prev().children('td:first-child').removeAttr('rowspan');
			$(trigger).parents('tr').remove();
		});
	}

}

function resertError(target){
	$(target).removeClass('error');
}

function hideError(){
	$('#error-msg').html('<div id="error-loading"></div>');
	$('#error-box').hide();
}

function displayError(mode, target){

	if($(target).hasClass('error')){
		
		if(!$('#error-box').length){
			$('body').append('<div id="error-box" onmouseout="hideError();"><div id="error-msg"><div id="error-loading"></div></div><div class="appendice"></div></div>');
		}
		
		var duration = 200;
		
		$('#error-box').css('left', ($(target).offset().left)+'px').css('top', ($(target).offset().top-$('#error-box').outerHeight()-8)+'px');
		//$('#error-msg').load('includes/error-box.php?mode='+mode);
		$('#error-msg').html(siteParams.errors[mode]);
		$('#error-box').fadeIn(duration);
	}

}

function displayErrorGreybox(mode, target){

	if($(target).hasClass('error')){
		
		if(!$('#error-box').length){
			$('#greyBox').append('<div id="error-box" onmouseout="hideError();"><div id="error-msg"><div id="error-loading"></div></div><div class="appendice"></div></div>');
		}
		
		var duration = 200;

		//$('#error-box').css('left', ($(target).offset().left) + 'px').css('top', ($(target).offset().top-$('#error-box').outerHeight()-8)+'px');
		$('#error-box').css('left', ($(target).offset().left - 470)+'px').css('top', ($(target).offset().top-$('#error-box').outerHeight()-98)+'px');
		//$('#error-msg').load('includes/error-box.php?mode='+mode);
		$('#error-msg').html(siteParams.errors[mode]);
		$('#error-box').fadeIn(duration);
	}

}

/* CALL INTERFACE FLASH */
function majTexte1(element){
	var value = $(element).val();
	document.getElementById('idgravure').majTexte1(value);
}
function majTexte2(element){
	var value = $(element).val();
	document.getElementById('idgravure').majTexte2(value);
}
function majTypo(value){
	document.getElementById('idgravure').majTypo(value);
}
/* /CALL INTERFACE FLASH */


(function($){
	
	/* Gestion du panier */
	$.cart = {
		EventAddCart : function(){
			$.post(siteParams.url.cart.update, $(this).serialize(), function(data){
				if(typeof(data.success)!='undefined'){
					if(data.success == true){
						$('#cartQty').text(data.cart.count);
						//console.log(data);
						var product_added = data.data;
						greyBoxShow('ajax','/greybox/product-added/'+product_added.product_id, 515, 340, false, function(){
							//$('.prod_added_engraved').show();
							//$('.prod_added_text_engraved').html(product_added.engraved_data.text_engraved_html);
							$('.prod_added_quantity').show();
							$('.prod_added_text_quantity').html(product_added.qty);
						});
					}
					else if(typeof(data.message)!='undefined') {
						greyBoxMessage(data.message);
					}
				}
			}, "json");
			return false;
		},
		EventLogin : function(){
			checkout_updateSection_addLoader('checkout-log');
			$.post(siteParams.url.user.login+'/return_addresses:1', $(this).serialize(), function(data){
				checkout_updateSection_delLoader('checkout-log');
				if(typeof(data.success)!='undefined'){
					if(data.success == true){
						$('.cart_login_isnotlogged').hide();
						$('.cart_login_islogged').show();
						$('.cart_login_islogged .prenom_nom').text(data.authuser.firstname+' '+data.authuser.lastname);
						
						// Si autre formulaire présent dans cette section, rétablissement du formulaire login
						$('#checkout-log .content form:not(#cart_login)').remove();
						$('#checkout-log .content form').show();
						
						$.user.data = data.User;
						$.cart.genereFormAddress();
						
						checkout_expandSection('checkout-log', 'checkout-address');
					}
					else if(typeof(data.message)!='undefined') {
						greyBoxMessage(data.message);
					}
				}
			}, "json");
			return false;
		},
		EventLogout : function(){
			checkout_updateSection_addLoader('checkout-log');
			$.post(siteParams.url.user.logout, $(this).serialize(), function(data){
				checkout_updateSection_delLoader('checkout-log');
				if(typeof(data.success)!='undefined'){
					if(data.success == true){
						$('.cart_login_islogged').hide();
						$('.cart_login_isnotlogged').show();
						$('#edit_checkout-address, #edit_checkout-payment').remove();
					}
					else if(typeof(data.message)!='undefined') {
						greyBoxMessage(data.message);
					}
				}
			}, "json");
			return false;
		},
		EventAddAccount : function(){
			// Validation formulaire type account
			if($(this).validationFormAccount() == false) return false;
			
			var formAddAccount = this;
			
			checkout_updateSection_addLoader('checkout-log');
			$.post(siteParams.url.user.add+'/return_addresses:1', $(this).serialize(), function(data){
				if(typeof(data.success)!='undefined'){
					if(data.success == true){
						$('form#cart_login input[name=username]').val($('input[name=email]',formAddAccount).val());
						$('form#cart_login input[name=password]').val($('#form_ck-register_password',formAddAccount).val());
						$('form#cart_login').submit();
					}
					else if(typeof(data.message)!='undefined') {
						checkout_updateSection_delLoader('checkout-log');
						greyBoxMessage(data.message);
					}
					else {
						checkout_updateSection_delLoader('checkout-log');
					}
				}
				else {
					checkout_updateSection_delLoader('checkout-log');
				}
			}, "json");
			$(this).each($.cart.retoreDefaultValuesForEmptyField);
			return false;
		},
		EventQtyChange : function(){
			var TrCartLine = $(this).parents('tr.cart_line');
			var keyCartLine = TrCartLine.find('.cart_line_key').text();
			cart_line = $.extend({}, siteParams.cart[parseInt(keyCartLine)]);
			var nb_multiple = parseInt($(this).parent().find(".nb_multiple").val()) ;
			if(nb_multiple < 1) nb_multiple = 1 ;
			cart_line['nb_multiple'] = nb_multiple ;
			if($(this).is('.qty_up')){
				cart_line['qty'] = parseInt(cart_line['qty'], 10) + parseInt(nb_multiple, 10) ;
			}
			else if($(this).is('.qty_down')){
				cart_line['qty'] -= nb_multiple ;
				if(nb_multiple < 0) nb_multiple = 0 ;
			}
			
			checkout_updateSection_addLoader('checkout-order');
			$.post(siteParams.url.cart.update_cart+'/product', cart_line, function(data){
				checkout_updateSection_delLoader('checkout-order');
				if(typeof(data.success)!='undefined'){
					if(data.success == true){
						siteParams.cart[parseInt(keyCartLine)] = data.data;
						if(data.data == null || typeof(data.data.qty)=='undefined' || data.data.qty <= 0){ // Produit supprimé
							/*--Pour IE (pas d'effet car non-supporté)--*/
							if(jQuery.browser.msie){
								/*--si on est sur un produit simple--*/
								if(!TrCartLine.hasClass('remove-border')){
									TrCartLine.remove();
								}
								/*--sinon si on est sur un produit avec gravure (3 lignes sont concernées)--*/
								else{
									TrCartLine.nextAll().remove();
									TrCartLine.remove();
								}
							}
							/*--Pour les autres navigateurs--*/
							else{
								if(!TrCartLine.hasClass('remove-border')){
									TrCartLine.fadeOut('fast', function(){
										TrCartLine.remove();
									});
								}
								else{
									TrCartLine.nextAll().fadeOut('fast', function(){
										TrCartLine.nextAll().remove();
									});
									TrCartLine.fadeOut('fast', function(){
										TrCartLine.remove();
									});
								}
							}
						}
						else{
							TrCartLine.find('.num').text(data.data.qty);
							TrCartLine.find('.total').html(data.data.total_txt);
							if(data.data.engraved == 1){
								TrCartLine.next('tr.engraving').find('.total').html(data.data.engraved_data.total_txt);
							}
						}
						$.cart.UpdateCart(data);
					}
					else if(typeof(data.message)!='undefined') {
						greyBoxMessage(data.message);
					}
				}
			}, "json");
			return false;
		},
		EventAddCarteCadeau : function(form){
			if(!verifLigneCaractere($(form).find("textarea").val(), siteParams.errors["nb_line_max"]) || $(form).find("textarea").val().length > siteParams.errors["nb_car_max"]) {
				//greyBoxMessage(siteParams.errors["nb_line_car"]);
				displayErrorGreybox("nb_line_car", $(form).find("textarea").addClass('error').one('click',hideError)) ;
				return false ;
			}
			var result = null;
			$.ajax({
				url: siteParams.url.base+'json/carts/update_carte_cadeau',
				type: "POST",
				data: ($(form).serialize()),
				dataType: "json",
				async:false,
				success: function(data){
					if(typeof(data.success)!='undefined'){
						if(data.success == true){
							greyBoxHide();
						}
						else if(typeof(data.message)!='undefined') {
							greyBoxMessage(data.message);
						}
					}
				}
			});
			
			return false;
		},
		EventTransportChange : function(){
			checkout_updateSection_addLoader('checkout-order');
			$("#info_transporters_country").text(transporteurs[$(this).val()]['TransportersCountry']['info']) ;
			$.post(siteParams.url.cart.update_cart+'/transport', {transporter_country_id:$('option:selected',this).val()}, function(data){
				checkout_updateSection_delLoader('checkout-order');
				if(typeof(data.success)!='undefined'){
					if(data.success == true){
						$.cart.UpdateCart(data);
					}
					else if(typeof(data.message)!='undefined') {
						greyBoxMessage(data.message);
					}
				}
			}, "json");
			return false;
		},
		EventAddCodePromo : function(){
			checkout_updateSection_addLoader('checkout-order');
			$.post(siteParams.url.cart.update_cart+'/promo', {discount_code_code:$(this).parent().find('input').val()}, function(data){
				checkout_updateSection_delLoader('checkout-order');
				if(typeof(data.success)!='undefined'){
					if(data.success == true){
						if(data.order.DiscountCode.discount_type_id == 8){window.location.reload();}//GiftProduct
						$.cart.UpdateCart(data);
						$(".privilege").fadeOut('fast');
						$("#line_discount_code").css('visibility','visible');
						$("#line_discount_code .total").html(data.order.DiscountCode.discount_text);
					}
					else if(typeof(data.message)!='undefined') {
						greyBoxMessage(data.message);
					}
				}
			}, "json");
			return false;
		},
		EventValidationAddress: function(){
			if($('input[name=select_address]:checked',this).length == 0){
				displayError('required_address', $('input[name=select_address]:first').addClass('error').one('click',hideError));
				return false;
			}
			
			if($('input[name=select_address]:checked',this).val() == ''){
				$('input[type=text]',this).each(function(){
					if(this.defaultValue == this.value) $(this).val('');
				});
				
				// Test par rapport au pays
				country_id = false;
				if($('select[name=country_id]').length == 1)	{country_id = $('select[name=country_id] option:selected',this).val();}
				if($('input[name=country_id]').length == 1)		{country_id = $('input[name=country_id]',this).val();}
				
				if(country_id=='US'){ $('select[name=region]',this).addClass('requis');}
				else				{ $('select[name=region]',this).removeClass('requis'); }
				// Fin test pays
				
				var erreur_requis = false;
				$('.requis',this).each(function(){
					if(($(this).is('select') && $('option:selected',this).val()=='') || $(this).val()==''){
						$(this).addClass('error');
						if(erreur_requis == false) erreur_requis = this;
					}
				});
				if(erreur_requis != false){
					displayError('required', $(erreur_requis).addClass('error').one('click',hideError));
					$(this).each($.cart.retoreDefaultValuesForEmptyField);
					return false;
				}
				
				if($('input[name=civility_id]:checked',this).length != 1){ // Verif Civilité
					displayError('required', $('input[name=civility_id]:first',this).addClass('error').one('click',hideError));
					$(this).each($.cart.retoreDefaultValuesForEmptyField);
					return false;
				}
			}
			
			var form = this;
			checkout_updateSection_addLoader('checkout-address');
			$.post(siteParams.url.checkout.validation_address, $(this).serialize(), function(data){
				//console.log(data);
				if(typeof(data.success)!='undefined'){
					if(data.success == true){
						if(typeof(data.User)!='undefined'){
							$.user.data = data.User;
							$.cart.genereFormAddress();
							$('input[name=select_address][value='+data.shipping_address_id+']',form).click();
							$('.content',form).html('');
						}
						$('#checkout-payment input[name=order_id]').val(data.order_id);
						
						$('#payment_stotal_val_text, #payment_stotal_val_text_2').html(data.Order.total.discounted_price_text);
						if($('#payment_stotal_tax_val_text').length == 1){
							$('#payment_stotal_tax_val_text').html(data.Order.total.tax_text);
							$('#payment_stotal_val_text').html(data.Order.total.discounted_price_HT_text);
						}
						
						
						var result = $.cart.Ipp.getPaymentProducts(data.order_id);
						if(result.success == true && result.action == "continue"){
							$('input[name=card_type]').each(function(){
								if($.inArray($(this).val(),result.payment_products) == -1){
									$(this).removeAttr('checked').parent().css('visibility','hidden');
								}
								else {
									$(this).parent().css('visibility','visible');
								}
							});
							$('#checkout-payment input[name=verif_key]').val(result.verif_key);
							checkout_updateSection_delLoader('checkout-address');
							checkout_expandSection('checkout-address', 'checkout-payment');
						}
						else{
							checkout_updateSection_delLoader('checkout-address');
							greyBoxMessage(result.message);
						}
					}
					else if(typeof(data.message)!='undefined') {
						checkout_updateSection_delLoader('checkout-address');
						greyBoxMessage(data.message);
					}
					else {
						checkout_updateSection_delLoader('checkout-address');
					}
				}
				else {
					checkout_updateSection_delLoader('checkout-address');
				}
			}, "json");
			$(this).each($.cart.retoreDefaultValuesForEmptyField);
			return false;
			
		},
		EventPayment: function(){
			if($('input[name=card_type]:checked',this).length == 0){
				displayError('required_card_type', $('#selected_cards tr:visible input[name=card_type]').eq(0).addClass('error').one('click',hideError));
				return false;
			}
			
			$('input[type=text]',this).each(function(){
				if(this.defaultValue == this.value) $(this).val('');
			});
			
			var erreur_requis = false;
			$('.requis',this).each(function(){
				if(($(this).is('select') && $('option:selected',this).val()=='') || $(this).val()==''){
					$(this).addClass('error');
					if(erreur_requis == false) erreur_requis = this;
				}
			});
			
			if(!$('#form_ck-validate_cgv',this).is(':checked') && erreur_requis == false) { // Verif CGV
				displayError('cgv', $('#form_ck-validate_cgv',this).addClass('error').one('click',hideError));
				if(erreur_requis == false) erreur_requis = $('#form_ck-validate_cgv',this);
				return false ;
			}
			
			if(erreur_requis != false){
				displayError('required', $(erreur_requis).addClass('error').one('click',hideError));
				$(this).each($.cart.retoreDefaultValuesForEmptyField);
				return false;
			}
			
			checkout_updateSection_addLoader('checkout-payment',false,siteParams.translate.attentePaiement);
			//result = $.cart.Ipp.payOrder($(this).serialize());
			var result = null;
			$.post(siteParams.url.base+'json/ipp/payOrder', $(this).serialize(), function(data){
				result = data;
				if(result.action == "continue"){
					$('span.edit').remove();
					$("#checkout-payment .content:first").load(siteParams.url.base+'checkout/final_recap/'+result.order.Order.order_id);
					checkout_updateSection_delLoader('checkout-payment');
					
					if(typeof(_gaq)!='undefined'){
					  _gaq.push(['_addTrans',
					    result.order.Order.order_id,
					    'Christofle',
					    result.order.Order.amount,
					    result.order.Order.amount_tax,
					    result.order.Order.amount_transport,
					    result.order.ShippingAddress.city,
					    result.order.ShippingAddress.region,
					    result.order.ShippingAddress.country_id
					  ]);
					  
					  $.each(result.order.OrderLine,function(i,orderline){
						  if(orderline.product_id != 22720){// Sauf transport
							  collection = '';
							  if(typeof(orderline.products_data.Collection)!='undefined'){
								  if(typeof(orderline.products_data.Collection.title)!='undefined'){
									  collection = orderline.products_data.Collection.title;
								  }
							  }
							  _gaq.push(['_addItem',
							    result.order.Order.order_id,
							    orderline.products_data.Product.sku,
							    orderline.products_data.Product.name,
							    collection,
							    orderline.discounted_price,
							    orderline.quantity_asked
							  ]);
						  }
					  });
					  
					  _gaq.push(['_trackTrans']);
					}
				}
				else {
					greyBoxMessage(result.message);
					$(this).each($.cart.retoreDefaultValuesForEmptyField);
					checkout_updateSection_delLoader('checkout-payment');
				}
			}, "json") ;
			return false;
			
		},
		UpdateCart : function(data){
			if(data.cart.count == 0){
				$('#checkout table.cart').hide();
				$('#checkout table.cart').remove();
				$('#no-articles').fadeIn(2000);
			}
			
			if(data.cart.count > 1)	{$('#cart-title-count-art').text(data.cart.count+' '+siteParams.translate.articles);}
			else					{$('#cart-title-count-art').text(data.cart.count+' '+siteParams.translate.article);}
			
			$('#cartQty').text(data.cart.count);

			$('#line_stotal_val_text').html(data.order.STotal.discounted_price_text);
			$('#payment_stotal_val_text').html(data.order.STotal.discounted_price_text);
			$('#payment_stotal_val_text_2').html(data.order.STotal.discounted_price_text);
			$('#line_frais_de_port_val_text').html(data.order.STotal.discounted_price_transport_text);
			$('#line_total_before_promo_et_transport_text').html(data.cart.total_txt);
		},
		retoreDefaultValuesForEmptyField: function(){
			$('input[type=text]',this).each(function(){
				if($(this).val()=='') $(this).val(this.defaultValue);
			});
		},
		loadFormInscription: function(url){
			checkout_updateSection_addLoader('checkout-log');
			$.get(url, function(data){
				$('#checkout-log .content form').hide();
				$('#checkout-log .content').append(data);
				checkout_updateSection_delLoader('checkout-log');
			});
			return false;
		},
		loadFormAddAddressLiv: function(url){
			checkout_updateSection_addLoader('checkout-address');
			$.get(url, function(data){
				$('#checkout-address form .content').html(data);
				checkout_updateSection_delLoader('checkout-address');
			});
			return true;
		},
		genereFormAddress: function(){
			if(typeof($.user.data.BillingAddresses[0])!='undefined'){
				billing_address = $.user.data.BillingAddresses[0];
				billing_address_text = billing_address.Civility.texte+' '+billing_address.firstname+' '+billing_address.lastname;
				billing_address_text += ' - '+billing_address.address_1;
				if(billing_address.address_2 != null && billing_address.address_2 != '') billing_address_text += ' - '+billing_address.address_2;
				billing_address_text += ' '+billing_address.postcode+' '+billing_address.city;
				billing_address_text += ' - '+billing_address.Country.name;
				$('#form_ck-address_default_address').val(billing_address.id).siblings('label').find('span').text(billing_address_text);
				$('#form_ck-address_default_address').parent().show();
				if(billing_address['shipping_address']==false){ // Adresse de facturation differente du pays en session
					$('#form_ck-address_default_address').parent().hide();
					if($('#form_ck-address_default_address').is(':checked')){
						$('input[name=select_address]:not(#form_ck-address_default_address):first').click();
					}
				}
			} else {
				$('#form_ck-address_default_address').parent().hide();
			}
			$('#shipping_addresses').html('');
			$.each($.user.data.ShippingAddresses, function(i, shipping_address){
				shipping_address_text = shipping_address.Civility.texte+' '+shipping_address.firstname+' '+shipping_address.lastname;
				shipping_address_text += ' - '+shipping_address.address_1;
				if(shipping_address.address_2 != null && shipping_address.address_2 != '') shipping_address_text += ' - '+shipping_address.address_2;
				shipping_address_text += ' '+shipping_address.postcode+' '+shipping_address.city;
				shipping_address_text += ' - '+shipping_address.Country.name;
				$('#shipping_addresses').append(
					'<p>'+
						'<input class="radio" name="select_address" id="form_ck-address_'+shipping_address.id+'" tabindex="17" value="'+shipping_address.id+'" type="radio" />'+
						'<label for="form_ck-address_'+shipping_address.id+'">'+shipping_address_text+'</label>'+
					'</p>'
				);
			});
		},
		Ipp: {
			resultGetPaymentProducts:null,
			getPaymentProducts: function(order_id){
				var result = null;
				$.ajax({
					url: siteParams.url.base+'json/ipp/getPaymentProducts',
					type: "POST",
					data: ({order_id:order_id}),
					dataType: "json",
					async:false,
					success: function(data){result = data;}
				   }
				);
				this.resultGetPaymentProducts = result;
				return result;
			},
			resultPayOrder: null,
			payOrder: function(params){
				var result = null;
				$.ajax({
					url: siteParams.url.base+'json/ipp/payOrder',
					type: "POST",
					data: params,
					dataType: "json",
					async:false,
					success: function(data){result = data;}
				   }
				);
				this.resultPayOrder = result;
				return result;
			}
		}
	};
	$.user = {
		Login : function(params){
			var result = null;
			$.ajax({
				url: siteParams.url.user.login,
				type: "POST",
				data: params,
				dataType: "json",
				async:false,
				success: function(data){result = data;}
			});
			return result;
		},
		Add : function(params){
			var result = null;
			$.ajax({
				url: siteParams.url.user.add,
				type: "POST",
				data: params,
				dataType: "json",
				async:false,
				success: function(data){result = data;}
			});
			return result;
		},
		Edit : function(params){
			var result = null;
			$.ajax({
				url: siteParams.url.user.edit,
				type: "POST",
				data: params,
				dataType: "json",
				async:false,
				success: function(data){result = data;}
			});
			return result;
		},
		EventAddAccount : function(){
			// Validation formulaire type account
			if($(this).validationFormAccount() == false) return false;
			
			$(this).addLoader();
			result = $.user.Add($(this).serialize());
			if(result.success == true){
				login = $.user.Login({username:$('input[name=email]',this).val(),password:$('input[name=password]',this).val()});
				if(login.success == true){
					window.location.href = siteParams.url.base+'my-account';
				}
				else if(typeof(login.message)!='undefined') {
					$(this).each($.cart.retoreDefaultValuesForEmptyField);
					$(this).delLoader();
					greyBoxMessage(login.message);
				}
			}
			else if(typeof(result.message)!='undefined') {
				$(this).each($.cart.retoreDefaultValuesForEmptyField);
				$(this).delLoader();
				greyBoxMessage(result.message);
			}
			
			$(this).each($.cart.retoreDefaultValuesForEmptyField);
			return false;
		},
		EventEditAccount : function(){
			// Validation formulaire type account
			if($(this).validationFormAccount() == false) return false;
			$(this).addLoader();
			result = $.user.Edit($(this).serialize());
			$(this).each($.cart.retoreDefaultValuesForEmptyField);
			$(this).delLoader();
			greyBoxMessage(result.message);
			return false;
		}
	};
	
	// Validation formulaire type account
	$.fn.validationFormAccount = function(){
		$('input[type=text]',this).each(function(){
			if($(this).attr('title') === undefined || $(this).attr('title') === false){
				if(this.defaultValue == this.value) $(this).val('');
			}
			else if($(this).val() == $(this).attr('title')) $(this).val('');
		});
		
		// Test par rapport au pays
		country_id = false;
		if($('select[name=country_id]').length == 1)	{country_id = $('select[name=country_id] option:selected',this).val();}
		if($('input[name=country_id]').length == 1)		{country_id = $('input[name=country_id]',this).val();}
		
		if(country_id=='US'){ $('select[name=region]',this).addClass('requis');}
		else				{ $('select[name=region]',this).removeClass('requis'); }
		// Fin test pays
		
		// Test des champs requis
		var erreur_requis = false;
		$('.requis',this).removeClass('error').each(function(){
			if(($(this).is('select') && $('option:selected',this).val()=='') || $(this).val()==''){
				$(this).addClass('error');
				if(erreur_requis == false) erreur_requis = this;
			}
		});
		if(erreur_requis != false){
			displayError('required', $(erreur_requis).addClass('error').one('click',hideError));
			$(this).each($.cart.retoreDefaultValuesForEmptyField);
			return false;
		}
		
		// Test des champs email
		var erreur_email = false;
		$('.email',this).each(function(){
			if(!verifMail($(this).val())) {
				$(this).addClass('error');
				if(erreur_email == false) erreur_email = this;
			}
		}) ;
		if(erreur_email != false){
			displayError('email', $(erreur_email).addClass('error').one('click',hideError));
			return false;
		}
		
		if($('input[name=civility_id]:checked',this).length != 1){ // Verif Civilité
			displayError('required', $('input[name=civility_id]:first',this).addClass('error').one('click',hideError));
			$(this).each($.cart.retoreDefaultValuesForEmptyField);
			return false;
		}
		if($('#form_ck-register_phone',this).val().length < siteParams.errors["size_min_tel"]){ // Verif num tel > %d
			displayError('size_phone', $('#form_ck-register_phone',this).addClass('error').one('click',hideError));
			$(this).each($.cart.retoreDefaultValuesForEmptyField);
			return false;
		}
		if($('#form_ck-register_password',this).val()==''){ // Verif Existance MDP
			displayError('required', $('#form_ck-register_password_text',this).addClass('error').one('click',hideError));
			$(this).each($.cart.retoreDefaultValuesForEmptyField);
			return false;
		}
		else if($('#form_ck-register_password',this).val().length < siteParams.errors["size_min_password"]){ // Verif MDP de minimum %d caractères
			displayError('size_password', $('#form_ck-register_password',this).addClass('error').one('click',hideError));
			$(this).each($.cart.retoreDefaultValuesForEmptyField);
			return false;
		}
		else if($('#form_ck-register_password',this).val() != $('#form_ck-register_password_confirm',this).val()){ // Verif Egalité MDP
			displayError('different_password', $('#form_ck-register_password',this).addClass('error').one('click',hideError));
			$(this).each($.cart.retoreDefaultValuesForEmptyField);
			return false;
		}
		if($('#form_ck-register_cgv',this).length != 0 && $('#form_ck-register_cgv',this).is(':checked') != true){ // Verif CGV
			displayError('cgv', $('#form_ck-register_cgv',this).addClass('error').one('click',hideError));
			$(this).each($.cart.retoreDefaultValuesForEmptyField);
			return false;
		}
		return true;
	};

	$.friend = {
		EventSendToFriend : function(element){
			var retour = true ;
			$(element).each(function() {
				$('input[type=text]',this).each(function(){
					if(this.defaultValue == this.value) $(this).val('');
				});
				
				// Test des champs requis
				var erreur_requis = false;
				$('.requis',this).each(function(){
					if(($(this).is('select') && $('option:selected',this).val()=='') || $(this).val()==''){
						$(this).addClass('error');
						if(erreur_requis == false) erreur_requis = this;
					}
				});
				if(erreur_requis != false){
					displayErrorGreybox('required', $(erreur_requis).addClass('error').one('click',hideError));
					$(this).each($.friend.restoreDefaultValuesForEmptyField);
					retour = false;
					return false;
				}
				
				// Test des champs email
				var erreur_email = false;
				$('.email',this).each(function(){
					if(!verifMail($(this).val())) {
						$(this).addClass('error');
						if(erreur_email == false) erreur_email = this;
					}
				}) ;
				if(erreur_email != false){
					displayErrorGreybox('email', $(erreur_email).addClass('error').one('click',hideError));
					//$(this).each($.friend.restoreDefaultValuesForEmptyField);
					retour = false;
					return false;
				}
				
				var retour_radio = true ;
				if($('input[name="data[Contact][civility_id]"][type=radio]:checked',this).length != 1){ // Verif Civilité
					displayErrorGreybox('required', $('input[name="data[Contact][civility_id]"][type=radio]:first',this).addClass('error').one('click',hideError));
					$(this).each($.friend.restoreDefaultValuesForEmptyField);
					retour_radio = false ;
					retour = false;
				}
				if($('input[name="data[Contact][civility_id2]"][type=radio]:checked',this).length != 1){ // Verif Civilité
					displayErrorGreybox('required', $('input[name="data[Contact][civility_id2]"][type=radio]:first',this).addClass('error').one('click',hideError));
					$(this).each($.friend.restoreDefaultValuesForEmptyField);
					retour_radio = false ;
					retour = false;
				}
				if($('input[name="data[Contact][type]"][type=radio]:checked',this).length != 1){ // Verif aff prix
					displayErrorGreybox('required', $('input[name="data[Contact][type]"][type=radio]:first',this).addClass('error').one('click',hideError));
					$(this).each($.friend.restoreDefaultValuesForEmptyField);
					retour_radio = false ;
					retour = false;
				}
				return retour_radio ;
			}) ;
			//alert("retour : " + retour) ;
			return retour ;
		},
		restoreDefaultValuesForEmptyField: function(){
			$('input[type=text]',this).each(function(){
				if($(this).val()=='') $(this).val(this.defaultValue);
			});
		}
	} ;
	
	
	$(function(){
		/* Soumission formulaire addCart */
		$('form.addCart').submit($.cart.EventAddCart);
		/* Checkout */
		$('#checkout').each(function(){
			$('form#cart_login',this).submit($.cart.EventLogin);
			$('#cart_logout',this).click($.cart.EventLogout);
			$('#checkout-order form .qty_change',this).click($.cart.EventQtyChange);
			$('#select-transport',this).change($.cart.EventTransportChange);
			$('#btn_valid_promo',this).click($.cart.EventAddCodePromo);
			$('form#cart_validation_address',this).submit($.cart.EventValidationAddress);
			$('#checkout-payment form',this).submit($.cart.EventPayment);
			
		});
		$('#champ_valid_promo').keypress(function(event) {
			if(event.keyCode == '13') {
				$('#btn_valid_promo').click() ;
				return false ;
			}
			return true ;
		});
		/* My account */
		$('#my-account-login',this).submit(function(){
			$('input[type=text]',this).each(function(){
				if(this.defaultValue == this.value) $(this).val('');
			});
			
			var erreur_requis = false;
			$('.requis',this).each(function(){
				if(($(this).is('select') && $('option:selected',this).val()=='') || $(this).val()==''){
					$(this).addClass('error');
					if(erreur_requis == false) erreur_requis = this;
				}
			});
			if(erreur_requis != false){
				displayError('required', $(erreur_requis).addClass('error').one('click',hideError));
				$(this).each($.cart.retoreDefaultValuesForEmptyField);
				return false;
			}
			$('#my-account-login-login').addLoader();
			login = $.user.Login($(this).serialize());
			if(login.success == true){
				location.reload();
			}
			else if(typeof(login.message)!='undefined') {
				$(this).each($.cart.retoreDefaultValuesForEmptyField);
				$('#my-account-login-login').delLoader();
				greyBoxMessage(login.message);
			}
			return false;
		});
		$('#my-account-add',this).submit($.user.EventAddAccount);
		$('#my-account-edit',this).submit($.user.EventEditAccount);

		/* Ajout à la wishlist */
		$("a.wishlist_add").click(function() {
			$.post("/json/whishlists/add/"+$(this).parents("li").find(".id_produit").val(), null, function(data){
				if(typeof(data.success)!='undefined'){
					if(data.success == true){
						//greyBoxMessage(data.message);
						greyBoxShow('ajax','/greybox/add-to-wishlist/'+data.id_produit, 515, 340, false, function(){
							//$('.prod_added_engraved').show();
							//$('.prod_added_text_engraved').html(product_added.engraved_data.text_engraved_html);
						});
					}
				}
			}, "json");

			return false ;
		}) ;

		/* Gestion de la wishlist */
		$(".del_wish").click(function() {
			$.post("/json/whishlists/delete/"+$(this).parents("tr").find(".id_produit").val(), null, function(data){
				if(typeof(data.success)!='undefined'){
					if(data.success == true){
						if($("#produit_"+data.id_produit).parents("tr").hasClass("remove-border")) {
							$("#produit_"+data.id_produit).parents("table.cart").find("tr").eq(-3).addClass("remove-border") ;
						}
						var table = $("#produit_"+data.id_produit).parents("table") ;
						$("#produit_"+data.id_produit).parents("tr").remove() ;
						if(table.find("tr").length <= 1) {
							$("#msg_wishlist_vide").show() ;
						}
					}
				}
			}, "json");
			return false ;
		}) ;
		$(".add_basket").click(function() {
			$.post("/json/carts/update", "product_id="+$(this).parents("tr").find(".id_produit").val()+"&country_id="+$(this).parents("tr").find(".country_id").val()+"&product_qty=1", function(data){
				if(typeof(data.success)!='undefined'){
					if(data.success == true){
						$('#cartQty').text(data.cart.count);
					}
					else if(typeof(data.message)!='undefined') {
						greyBoxMessage(data.message);
					}
				}
			}, "json");
			return false ;
		}) ;
		
		// Formulaire de contact
		$("#Contacts").submit(function(){
			$('input[type=text],textarea,select',this).each(function(){
				if($(this).attr('title') === undefined || $(this).attr('title') === false){
					if(this.defaultValue == this.value) $(this).val('');
				}
				else if($(this).val() == $(this).attr('title')) $(this).val('');
				$(this).removeClass('error');
			});
			
			var erreur_requis = false;
			$('.requis',this).each(function(){
				if(($(this).is('select') && $('option:selected',this).val()=='') || $(this).val()==''){
					$(this).addClass('error');
					if(erreur_requis == false) erreur_requis = this;
				}
			});
			if(erreur_requis != false){
				displayError('required', $(erreur_requis).addClass('error').one('click',hideError));
				$(this).each(function() {
					$('input[type=text], textarea',this).each(function(){
						if($(this).val()=='') $(this).val(this.defaultValue);
					});
				});
				
				return false;
			}

			// Test des champs email
			var erreur_email = false;
			$('.email',this).each(function(){
				if(!verifMail($(this).val())) {
					$(this).addClass('error');
					//alert($(this).attr("onmouseover")) ;
					$(this).mouseover(function(){displayError("email", this);}) ;
					if(erreur_email == false) erreur_email = this;
				}
			}) ;
			if(erreur_email != false){
				displayError('email', $(erreur_email).addClass('error').one('click',hideError));
				//$(this).each($.friend.restoreDefaultValuesForEmptyField);
				return false;
			}
			
			if($('input[name="data[Contact][civility_id]"][type=radio]:checked',this).length != 1){ // Verif Civilité
				displayError('required', $('input[name="data[Contact][civility_id]"][type=radio]:first',this).addClass('error').one('click',hideError));
				$(this).each($.friend.restoreDefaultValuesForEmptyField);
				return false;
			}
			return true;
		});
	
		/* Rollout du main menu */
		$('#mainMenu dd').mouseleave(function(){
			displayMenu($(this).prev(), 'mainMenu', 0.3);
		});
	});
})(jQuery);
