$(document).ready(function(){

	initMenus();
	
	$('#cat_appareil').change( change_cat_appareil); //init accès rapide aux produit
	
	$('#push_content').Horinaja({capture:'push_content',delai:1.5,duree:5,pagination:true}); //init push produit
	$('#push_content li').show();
	$('.fiche_produit').parents('.link_to_fiche_produit') // init lien vers les boutons 'fiche produit'
			.hover( function(){$('.fiche_produit',$(this)).show();}, function(){$('.fiche_produit',$(this)).hide();} )
			.click( function(){ document.location=  $('.fiche_produit',$(this)).attr('href'); })
	$('.footer_product').click( function(){ document.location=  $(this).find('a').attr('href'); });
	$('#quick_find').submit( quickSearch );
	$('#quicklogin').submit(quickLogin);
	$("form.inField label").inFieldLabels({fadeOpacity:0.8});
	
	$('#point-retrait').click(function(e){
		e.preventDefault();
		e.stopPropagation();
		$('#point-retrait-popup').show().animate({'marginTop':'0px'},700).click( function(){ document.location= "societe.php" })		
	});
	
	$('#point-retrait-popup').mouseout( function(){
		$('#point-retrait-popup').animate({'marginTop':'92px'},700, function(){ $(this).hide();});
	});
	
	
	relais_bandeau_in();

	
	$('.add_to_cart').click( function(e){
		e.preventDefault();
		e.stopPropagation();

		var param= {action:'add', id:$(this).attr("id"), qtt:1};
		ajax(ajax_link+'cart.php', param, function(res){
			if( res.code == 0){				
				update_panier(1);
				
				$('#cart_under').css({filter: 'alpha(opacity=100)', '-khtml-opacity': 1,'-moz-opacity':1 ,'opacity': 1}).animate({filter: 'alpha(opacity=0)', '-khtml-opacity': 0,'-moz-opacity':0 ,'opacity': 0},1500);				
				outputMessage('Le produit a &eacute;t&eacute; ajout&eacute; &agrave; votre panier.');
			}
		});
	});
	
	// init contact_sav
	if( (document.location.href).match(/return product/g)){
		$('#contact_us_sav').submit( function(){
			return sendContactSAV();
		});
		
		$('#contact_us_sav input[type=text], #contact_us_sav input[type=password], #contact_us_sav textarea').each(function(){
			if( $(this).val()==''){
				$(this).focus();
				return false;
			}
		});
	}	
	
	// init contact_us
	if( (document.location.href).match(/contact_us/g)){
		$('#contactUs').submit( function(){
			return sendContactUs();
		});
		$('#contactUs input[type=text], #contactUs input[type=password], #contactUs textarea').each(function(){		
			if( $(this).val()==''){
				$(this).focus();
				return false;
			}
		});
	}
	
	if( (document.location.href).match(/create_account/g)){
		$('#create_account').submit( function(){
			return validFormCreateAccount();
		});
		$('#create_account input[type=text], #create_account input[type=password], #create_account textarea').each(function(){
			if( $(this).val()==''){
				$(this).focus();
				return false;
			}
		});
	}
	
	//init address_book
	if( (document.location.href).match(/address_book/g)){
		$('.address')
		.mouseover(
			function(){
				$('span',this).show();
			})
		.mouseout(
			function(){
				$('span',this).hide();
			}
		);
	}
	
	//login page
	if( (document.location.href).match(/login/g)){
		$('#login').submit( function(){	
			return true;
		});
		$('#login input[type=text], #login input[type=password]').each(function(){
			if( $(this).val()==''){
				$(this).focus();
				return false;
			}
		});
	}
		
	/*** init pour la page shopping_cart ***/
	if( (document.location.href).match(/shopping_cart/g)){
		$('.delete').click( function(){
			var mon_id= $(this).parents('tr').attr('id');
			var param= {action:'remove', id: mon_id};
			ajax(ajax_link+'cart.php', param, function(res){
				if ( res.code == 0 ){
					$('#'+res.id).fadeOut(1000, function(){ $(this).remove(); });
					$('#cart_total b').html( res.total);
					$('#cart_quantity').val(res.quantity_total);
					update_panier(null, res.quantity_total);
					//$('#nb_articles_in_cart').html(res.quantity_total);
				} else {
					//todo
				}
			});
		});
		window.req_en_cours= 0;
		$('.cart_quantity input').keyup(update_qtty).focus( function(){$(this).select();});
	}
	
	// init page checkout_confirmation
	if( (document.location.href).match(/checkout_confirmation/g)){
		$('#checkout_confirmation').submit(check_confirm);
	};
	
	///init account_edit
	if( (document.location.href).match(/account_edit/g)){
		initAccountEdit();
	}
	
	///change password
	if( (document.location.href).match(/account_password/g)){
		$('#password_edit_form').submit( function(){
			return validFormPassword();
		});
		$('#password_edit_form input[type=text]').each(function(){
			if( $(this).val()==''){
				$(this).focus();
				return false;
			}
		});
	}

/*** init pour la page shipping ***/
	if( (document.location.href).match(/checkout_shipping/g)){
		$('.shipping_radio').change(function(){
			$('.shipping_info').hide();
			$('#info_'+ $(this).attr('id') ).show();
			if( $(this).val()=='franceExpress_franceExpress')
				$('#france_express_zone').show();
			else
				$('#france_express_zone').hide();
			return false;
		});
		
		if( $('#franceExpress:checked').length ){
			$('#france_express_zone').show();
		}
		
		$('#select_point_relais').click(selectPointRelais);		
		$('#rechercher_relais').click( rechercherRelais );
		$('#valider_relais').click( validerRelais );
		$('input[name=idRelais]').live('change', selectRelais);
	}


	/*** init pour la page newsletter ***/
	if( (document.location.href).match(/account_newsletters/g)){
		$('#account_newsletter').submit( function(){
			return validFormNewsletter();
		});
	}
	
	/*** init pour la page newsletter ***/
	if( (document.location.href).match(/account_notifications/g)){
		$('#account_notifications').submit( function(){
			return validFormNotifications();
		});
	}
			
	/*** init pour la page product_ifno ***/
	if( (document.location.href).match(/product_info/g)){
		$('#dummy_desc_container table').css({width: '351px', 'border' : '1px solid #999', '-moz-border-radius': '1em', 'border-radius': '1em', '-webkit-border-radius': '1em'})
		$('#dummy_desc_container table tr').css({background: '#fff'}).each( function(){ $('td:first', this).css({'border-right' : '1px solid #999'}); });
		$('#dummy_desc_container table td').css({margin: '0', padding: 0});
		$('#dummy_desc_container table:last').css({'border' : '1px solid #999','padding':0,'margin':'1em 0 2em 0'})
			.find('tr').css({'background':'transparent'})
			.find('td').css({'background':'white','text-align':'left', 'vertical-align':'top','text-indent':0, 'padding':'2px 0 0 4px'})
			.find('br').remove();
		
		$('#prod_img a').lightBox();
		$('#tell_a_friend_action').click( tellAFriend );
		$('#tell_a_friend_show').click( function(e){
			if( $('#tell_a_friend_container:visible').length > 0){
				$('#tell_a_friend_container:visible').slideUp(); // on cache si visible et on sort
				return false;
			}
			var container= $('#tell_a_friend_container');
			container.slideDown();
			var x = container.offset().top - 100; // 100 provides buffer in viewport
		   $('html,body').animate({scrollTop: x}, 500);
	
			//focus sur le premier champ vide
			$('#tell_a_friend input[type=text], #contact_us textarea').each(function(){
				if( $(this).val()==''){
					$(this).focus();
					return false;
				}
			});
			e.stopPropagation();
			e.cancelBubble = true;
			return false;
		});
		
		$('.name').click( function(){
			$('.ref_interne', this).toggleClass('cache');
		})
		
		$('#info_produit a').click( function(e){
			var param= {action:'get'};
			param.id= $(this).attr('id');
			$(this).addClass('load');
			ajax(ajax_link+'product_info.php',param, function(res){
				if( res.code=== 0){			
					$('#info_content_title').html(unescape(res.data.titre));
					$('#info_content_text').html(unescape(res.data.texte));
					$.fn.colorbox({inline:true, href:'#info_content', open:true, opacity: 0.6}); 
				}
				else{
					outputMessage("&laquo;"+ elt.prev().text()+"&raquo; n'est pas renseign&eacute;.");
				}
			});
			e.stopPropagation();
			e.cancelBubble = true;
			 
			return false;		
		});
	}//fin if fiche_produit
});

var relais_bandeau_in= function(){ 
	$('#livraison_color').animate({'left':'-2719px'}, 12000, relais_bandeau_out);
}

var relais_bandeau_out= function(){ 
	$('#livraison_color').animate({'left':'0'}, 12000, relais_bandeau_in);
}	

function initMenus() {
	$('ul#navigation li a').click(
		function() {
			var checkElement = $(this).next();
			var parent = this.parentNode.parentNode.id;

			/*if(parent && $('#' + parent).hasClass('noaccordion')) {
				$(this).next().slideToggle('normal');
				return false;
			}*/
			if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
				/*if($('#' + parent).hasClass('collapsible')) {
					$('#' + parent + ' ul:visible').slideUp('normal');
				}*/
				$('#' + parent + ' ul:visible').slideUp('normal');
				return false;
			}
			if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
				$('#' + parent + ' ul:visible').slideUp('normal');
				checkElement.slideDown('normal');
				return false;
			}
		}
	);
}

var quickLogin= function(){
 $('#redirect_to').val(document.location);
 document.forms['quicklogin'].submit();
 return true;
} 


var ReadCookie=function(cookieName) {
 var theCookie=""+document.cookie;
 var ind=theCookie.indexOf(cookieName);
 if (ind==-1 || cookieName=="") return ""; 
 var ind1=theCookie.indexOf(';',ind);
 if (ind1==-1) ind1=theCookie.length; 
 return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
}


/**
 * function pour supprimer la coloration d'un champ en erreur
 */
var removeColor= function(){
	$(this).removeClass('error').unbind()
};

/***
 *  fonction wraper pour les appels ajax
 **/
var ajax= function(url, param, callback){
	param['rand']= Math.random(1000);
	$.getJSON(url, param, function(res){
		if( res.code == -2 ){
			alert("probleme");
		} else {
			callback( res );
		}
	});
}

var ajaxPost= function(url, param, callback){
	param['rand']= Math.random(1000);
	$.post(url, param, function(res){
		if( res.code == -2 ){
			alert("probleme");
		} else {
			callback( res );
		}
	},'json');
}

var initCaddie= function(){
	$('#cart').click( function(){
		document.location= "shopping_cart.php";
	});
}


var update_panier= function(ajout,total){
	var qtt= ($('#cart_content').hasClass('empty') ) ? 0 : $('#cart_quantity').val();
	$('#cart_content').removeClass('empty');
	var new_qtt= (total) ? total : parseInt(qtt)+ajout;
	var txt= new_qtt + ' produit';
	txt+= ( new_qtt > 1) ?'s' : '';
	$('#cart_content').html(txt);
	$('#cart_quantity').val(new_qtt);
}

/*
	qtt= Number(qtt);
	if( qtt == 0 ){
		$('.cart_message').addClass('cart_empty').html('Vide');						
	}else{
		var msg= (qtt == 1) ? qtt + ' produit' : qtt + ' produits';
		$('.cart_message').html(msg).removeClass('cart_empty');
	}
}
*/

var update_qtty= function(e){
	var quantity= $(this).val();
	if( window.req_en_cours === 1 || quantity== '' || isNaN(quantity) ) return false;
	var my_id= $(this).parents('tr').attr('id');	
	var param= {action:'update',id: my_id, qtt: quantity };
	if( window.req_en_cours === 0){
		window.req_en_cours= 1;
		ajax(ajax_link+'cart.php',param, function(res){	
			if( res.code == 0){
				update_panier(null,res.quantity_total);

				$('tr#'+my_id+ ' .cart_price').html(res.total_product);
				$('#cart_total b').html( res.total);
			} else {
				//todo
			}
			window.req_en_cours= 0;
		});
	}else{
		//todo
	}
}


/***
 * Champ de recherche
 ***/
var quickSearch= function() {
	if( $('#keywords').val().length < 2){
		outputMessage('Vous devez saisir au moins 2 caract&egrave;res pour la recherche.');
		return false;
	}	
	$('#search_button').before('<div id="search_loading"></div>').remove();
	document.forms['quick_find'].submit();
	return true;
}




/***
 * fonctions d'accès rapide aux produits
 ***/
var change_cat_appareil= function(){
	$('#cat_marque').val(-1).attr('disabled','true').parent().removeClass('ready').removeClass('on');
	$('#cat_model').val(-1).attr('disabled','true').parent().removeClass('ready');
	
	var o= $(this);
	if( o.val() != -1){
		var param={action:'get_produit'};
		param.id=o.val();
		ajaxPost(ajax_link+'categories.php', param, function(res){
			if( res.code == 0){
				var rs='<option value="-1">Type de produit</option>';
				for(id in res.data){
					rs+='<option value="'+id+'">'+res.data[id]+'</option>';
				}
				o.parent().addClass('on').removeClass('ready');
				$('#cat_produit').html(rs).attr('disabled','').change(change_cat_produit).parent().addClass('ready');	
			}
			else{
			
			}
		});
	}
}
 
var change_cat_produit= function(){
	var o= $(this);
	if( o.val() != -1){
		var param={action:'get_marque'};
		param.id=o.val();
		ajaxPost(ajax_link+'categories.php', param, function(res){
			if( res.code == 0){
				var rs='<option value="-1">Marque</option>';
				for(id in res.data){
					var clef= id.split('_');
					rs+='<option value="'+clef[1]+'">'+res.data[id]+'</option>';
				}
				o.parent().addClass('on').removeClass('ready');
				$('#cat_marque').html(rs).attr('disabled','').change(change_cat_marque).parent().addClass('ready');	
			}
			else{
			}
		});
	}
}

var change_cat_marque= function(){
	var o= $(this);
	if( o.val() != -1){
		var param={action:'get_modele'};
		param.id_marque=o.val();
		param.id_cat= $('#cat_produit').val();
		ajaxPost(ajax_link+'categories.php', param, function(res){
			if( res.code == 0){
				var rs='<option value="-1" class="sep">Mod&egrave;les</option>';
				for(id in res.model){
					rs+='<option value="'+id+'">'+res.model[id]+'</option>';
				}
				if( res.ref){
					rs+= '<option value="-1" class="sep">-- R&eacute;f&eacute;rences</option>';
					for(id in res.ref){
						rs+='<option value="'+id+'">'+res.ref[id]+'</option>';
					}
				}
				o.parent().addClass('on').removeClass('ready');
				$('#cat_model').html(rs).attr('disabled','').change(change_cat_model).parent().addClass('ready');
			}
			else{
			}
		});
	}
}

var change_cat_model= function(){
	if ( $('#cat_model').val() == -1)
		return false;
	document.location= 'index.php?&cPath='+ $('#cat_appareil').val() + '_'+ $('#cat_produit').val()+ '&manufacturers_id='+$('#cat_marque').val() + "&products_model="+ $('#cat_model :selected').text();
}

/***
 * function envoyer à un ami de la fiche produit
 ***/
 var tellAFriend= function(e){
	var param= {action:'send'};
	//verifie que les champs obligatoires on bien été remplis
	$('#tell_a_friend input, #tell_a_friend textarea').each(function(){
		var elt= $(this);
		if( elt.next().is('sup')){
			var val= elt.val(); 
			if( val == ''){
				$('#tell_a_friend').data('error',true);
				
				outputMessage("&laquo;"+ elt.prev().text()+"&raquo; n'est pas renseign&eacute;.");
				elt.addClass('error').focus().keypress(removeColor);
				
				return false; //sort de la boucle pas de la fonction validForm
			}
			param[elt.attr('name')]= escape(elt.val()); // champ remplis on sauve la valeur
		}
	});
	param['product_id']= $('#product_id').val();
	param['url']= escape(document.location); 
	param['title']= escape( $('#dummy_desc_container h1').html());
	
	if( $('#tell_a_friend').data('error') ){
		$('#tell_a_friend').data('error',false); //erreur on s'arrête et on reinitialise
		return false;
	}

	ajaxPost(ajax_link+'tell_a_friend.php', param, function(res){
		if( res.code == 0){
			outputMessage('Votre message &agrave; bien &eacute;t&eacute; envoy&eacute;.');
			$('#to_name,#to_email,#enquiry').val('');
			$('#tell_a_friend_container').slideUp();
		}
		else{
			if( res.code == -3){
				var removeColor= function(){$(this).removeClass('error').unbind('removeColor')};
				$('#email').addClass('error').select().focus().change(removeColor);
			}
			outputMessage(res.msg);
		}
	});
}


/**
 * Formulaire de contact
 **/
var sendContactUs= function(){
	var param= {action:'send'};
	//verifie que les champs obligatoires on bien été remplis
	$('#contactUs input, #contactUs textarea').each(function(){
		var elt= $(this);
		if( elt.next().is('sup')){
			var val= elt.val(); 
			if( val == ''){
				$('#account_edit_form').data('error',true);
				
				outputMessage("&laquo;"+ elt.prev().text()+"&raquo; n'est pas renseign&eacute;.");	
				elt.addClass('error').focus().keypress(removeColor);
				
				return false; //sort de la boucle pas de la fonction validForm
			}
			else{
				param[elt.attr('name')]= escape(val); // champ remplis on sauve la valeur
			}
		}
	});
	
	if( $('#contactUs').data('error') ){
		$('#contactUs').data('error',false); //erreur on s'arrête et on reinitialise
		return false;
	}

	ajaxPost(ajax_link+'contact_us.php', param, function(res){
		if( res.code == 0){
			outputMessage('Votre message &agrave; bien &eacute;t&eacute; envoy&eacute;.');
			$('#enquiry').val('');
		}
		else{
			if( res.code == -3){
				var removeColor= function(){$(this).removeClass('error').unbind('removeColor')};
				$('#email').addClass('error').select().focus().change(removeColor);
			}
			outputMessage(res.msg);
		}
	});
};


/***
 * Formulaire de contact SAV
 ***/
var sendContactSAV= function(){
	var param= {action:'send'};
	//verifie que les champs obligatoires on bien été remplis
	$('.content form input, .content form textarea').each(function(){
		var elt= $(this);
		if( elt.next().is('sup')){
			var val= elt.val(); 
			if( val == ''){
				$('#contact_us_sav').data('error',true);
				
				outputMessage("&laquo;"+ elt.prev().text()+"&raquo; n'est pas renseign&eacute;.");
				elt.addClass('error').focus().keypress(removeColor);
				
				return false; //sort de la boucle pas de la fonction validForm
			}
			else{
				param[elt.attr('name')]= escape(val); // champ remplis on sauve la valeur
			}
		}
	});
	
	if( $('#contact_us_sav').data('error') ){
		$('#contact_us_sav').data('error',false); //erreur on s'arrête et on reinitialise
		return false;
	}
	
	param['societe']= escape($('#societe').val());
	//var param= {action:'send'}, societe:escape($('#societe').val()),tel:escape($('#tel').val()),name:escape($('#name').val()), email:escape($('#email').val()), enquiry:escape($('#enquiry').val())};
	ajaxPost(ajax_link+'return_product.php', param, function(res){
		if( res.code == 0){
			//tout est ok : msg et reinitialise les champs;
			outputMessage('Votre message &agrave; bien &eacute;t&eacute; envoy&eacute;.');
			$('#facture,#design,#ref,#enquiry').val('');
		}
		else{
			if( res.code == -3){
				outputMessage(res.msg);
				$('#email').addClass('error').select().focus().change(removeColor);
			}
		}
	});
};


/***
 * checkout_confirmation
 **/
var check_confirm= function(){
	//alert( $('#confirm_conditions_vente:checked').length );
	if( $('#confirm_conditions_vente:checked').length < 1 ) { 
		outputMessage( $('#conditions').html());
		return false;
	};
	//alert( document.forms['checkout_confirmation']);
	document.forms['checkout_confirmation'].submit();
	return true;
}



var initAccountEdit= function(){
	$('#account_edit_form').submit( function(){
		return validForm();
	});
	
	$('#account_edit_form input[type=text], #account_edit_form input[type=password], #account_edit_form textarea').each(function(){
		if( $(this).val()==''){
			$(this).focus();
			return false;
		}
	});


	var validForm= function(){
		var rad=$("input[name='gender']");
		if ( !rad[0].checked && !rad[1].checked){
			outputMessage("&laquo;"+ $('#genre span:first').text() +"&raquo; n'est pas renseign&eacute;.");
		}
		//verifie que les champs obligatoires on bien été remplis
		$('#account_edit_form input, #account_edit_form textarea').each(function(){
			var elt= $(this);
			if( elt.next().is('sup')){
				var val= elt.val(); 
				if( val == ''){
					$('#account_edit_form').data('error',true);
					
					outputMessage("&laquo;"+ elt.prev().text()+"&raquo; n'est pas renseign&eacute;.");	
					elt.addClass('error').focus().keypress(removeColor);
					
					return false; //sort de la boucle pas de la fonction validForm
				}			
			}
		});
		
		if( $('#account_edit_form').data('error') ){
			$('#account_edit_form').data('error',false); //erreur on s'arrête et on reinitialise
			return false;
		}
		
		document.forms['account_edit_form'].action=account_edit_action;
		document.forms['account_edit_form'].submit();	
		return true;
	}
}


var addressBookProcessInit= function(){
	$('#address_edit_form').submit( function(){
		return validFormBookProccess();
	});
	$('#address_edit_form input[type=text], #contact_us input[type=password], #contact_us textarea').each(function(){
		if( $(this).val()==''){
			$(this).focus();
			return false;
		}
	});
}

var validFormBookProccess= function(){
	var rad=$("input[name='gender']");
	if ( !rad[0].checked && !rad[1].checked){
		outputMessage("&laquo;"+ $('#gender span:first').text() +"&raquo; n'est pas renseign&eacute;.");
		return false;
	}
	//verifie que les champs obligatoires on bien été remplis
	$('#address_edit_form input, #address_edit_form textarea').each(function(){
		var elt= $(this);
		if( elt.next().is('sup')){
			var val= elt.val(); 
			if( val == ''){
				$('#address_edit_form').data('error',true);
				
				outputMessage("&laquo;"+ elt.prev().text()+"&raquo; n'est pas renseign&eacute;.");
				elt.addClass('error').focus().keypress(removeColor);
				
				return false; //sort de la boucle pas de la fonction validForm
			}			
		}
	});
	
	if( $('#address_edit_form').data('error') ){
		$('#address_edit_form').data('error',false); //erreur on s'arrête et on reinitialise
		return false;
	}
	
	document.forms['address_edit_form'].action=address_book_process_action;
	document.forms['address_edit_form'].submit();	
	return true;
}


var validFormPassword= function(){
	var msg= '';
	//verifie que les champs obligatoires on bien été remplis
	$('#password_edit_form input[type=text]').each(function(){
		var elt= $(this);
		if( elt.next().is('sup')){
			var val= elt.val(); 
			if( val == ''){
				$('#password_edit_form').data('error',elt);
				
				outputMessage("&laquo;"+ elt.prev().text()+"&raquo; n'est pas renseign&eacute;.");
				return false; //sort de la boucle pas de la fonction validForm
			}			
		}
	});
	if( !$('#password_edit_form').data('error') ){
		if($('#password_new').val() != $('#password_confirmation').val()){
			msg= ENTRY_PASSWORD_MISMATCH_ERROR;
			$('#password_edit_form').data('error', $('#password_new'));
		}
		else{
			if( $('#password_new').val().length < ENTRY_PASSWORD_MIN_LENGTH){
				msg= ENTRY_PASSWORD_LENGTH_ERROR;
				$('#password_edit_form').data('error',$('#password_new'));
			}
		}
	}	
	
	if( $('#password_edit_form').data('error') ){
		outputMessage( msg);
		$('#password_edit_form').data('error').addClass('error').focus().keypress(removeColor);
		$('#password_edit_form').data('error',null); //erreur on s'arrête et on reinitialise
		return false;
	}
	
	var param= {action:'process'};
	param['password_current']= $('#password_current').val();
	param['password_new']= $('#password_new').val();
	param['password_confirmation']= $('#password_confirmation').val();
	
	ajaxPost(ajax_link+'password.php', param, function(res){
		if( res.code == 0){
			outputMessage(res.msg);
			$('#enquiry').val('');
		}
		else{
			outputMessage(res.msg);
		}
	});
	
	
	/*document.forms['password_edit_form'].action="{{$account_edit.form_action}}";
	document.forms['password_edit_form'].submit();	*/
	return false;
}

var validFormCreateAccount= function(){

	var genre= false;
	$('input[name=gender]').each(function(){
		if (this.checked) genre= true;
	});
	if ( !genre){
		outputMessage(NO_GENDER);
		return false;
	}
	
	if( $('#country').val() =='' ){
		outputMessage(NO_COUNTRY);
	}
	//verifie que les champs obligatoires on bien été remplis
	$('#create_account input[type=text], #create_account input[type=password], #create_account textarea').each(function(){
		var elt= $(this);
		if( elt.next().is('sup')){
			var val= elt.val(); 
			if( val == ''){
				$('#create_account').data('error',true);
				
				outputMessage(NO_X_LEFT+ elt.prev().text()+NO_X_RIGHT+EMPTY_FIELD);
				elt.addClass('error').focus().keypress(removeColor);
				
				return false; //sort de la boucle pas de la fonction validForm
			}
		}
	});
	
	if( $('#password').val() != $('#confirmation').val()){
		outputMessage(ENTRY_PASSWORD_MISMATCH_ERROR);
		return false;
	};
	
	if( $('#create_account').data('error') ){
		$('#create_account').data('error',false); //erreur on s'arrête et on reinitialise
		return false;
	}	

	doSubmitCreateAccount();
	return false;
};

var doSubmitCreateAccount = function() {
    document.getElementById("create_account").submit();
}

var outputMessage= function( message, option){
	if ( $.browser.msie && Number($.browser.version) < 7){
		message= message.replace(/\&laquo;/gim,'"');
		message= message.replace(/\&raquo;/gim,'"');
		alert(message);
	}
	else{
		$('#meerkat').html(message);
		var opt= ( option) ? option : { height: '100px', close: '.close-meerkat' };		
		meerkat(opt);
	}
}


var selectPointRelais= function(){
	$('#modal_top_relais').modal({
			containerCss:{
				backgroundColor:"#fff",
				border: "2px solid #aaa",
				height:430,
				padding:"10px",
				width:800
			}
		});
	return false;
}

var rechercherRelais= function(){
	$('#liste_relais, #bottom_relais').hide();
	$('#rechercher_relais').append('<span id="loading_div"></span>');
	$.getJSON('ajax/relais.php', {code_postal:$('#cpl').val()} , function(r){
		$('#loading_div').remove();
		if(r.res == 0){			
			if( r.data.match(/Erreur/gi)){			
				outputMessage( r.data );
				return false;
			}			
  		$('#liste_relais').html( r.data );
  		$('#tableau_choix_tr > tbody > tr').each( function(){ 
  			$('td:eq(1)', this).hide();
  		});
  		$('#relais_selectione_txt').html( $('input[name=trnom_1]').val().toLowerCase());
  		$('#liste_relais, #bottom_relais').show();  		
  	}else{
  		outputMessage( r.msg );
  	}
  });
	return false;
}

var selectRelais= function(){
	$('#relais_selectione_txt').html( $(this).next().next().val().toLowerCase());
	return true;
}

var validerRelais= function(){
	var selected= $('input[name=idRelais]:checked');
	var id= selected.val();
	var inputId= selected.next('input').attr('name').split('_');
	var i= inputId.pop();

	var nom= $('input[name=trnom_'+i+']').val();
	var adresse= $('input[name=tradresse1_'+i+']').val();
	var cp= $('input[name=trcp_'+i+']').val();
	var ville= $('input[name=trville_'+i+']').val();
	
	$('#franceExpress_id').val(id);
	$('#franceExpress_nom').val(nom);
	$('#franceExpress_adresse').val(adresse);
	$('#franceExpress_cp').val(cp);
	$('#franceExpress_ville').val(ville);
	
	$('#select_point_relais').html( 'Point relais : '+nom+' - <span class="fauxlink">Modifier</span>');	
	
	$.modal.close();
	return false;
}

var check_relais= function(){
	if( $('#franceExpress:checked').length ){
		if( $('#franceExpress_id').val()== "" || isNaN($('#franceExpress_id').val())){
			outputMessage("Vous n'avez pas sélectionné votre point relais");
			return false;
		}
	}
	
	document.forms['checkout_address'].submit();
	return true;
}

function decodetest(t){
//remove carriage returns
  t = t.replace(new RegExp("\\=\r\n","gim"), "");
  t= t.replace(new RegExp("&laquo;","gim", "<<"));
//replace urlencoded values
  t = unescape(t);
//replacement values
  var thechrs = new Array(
    ' ','!','"','#','$','%','&',"'",'(',')','*','+',',','-','.','/','0','1','2','3',
    '4','5','6','7','8','9',':',';','<','=','>','?','@','A','B','C','D','E','F','G', 
    'H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','[', 
    '\\',']','^','_','`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
    'p','q','r','s','t','u','v','w','x','y','z','{','|','}','~',' ','c','u','e','a',
    'a','a','a','c','e','e','e','i','i','i','a','a','e','ae','ae','o','o','o','u','u',
    'y','u','u','o','l','0','x','f','a','i','o','u','n','n','*','O','?','r','_','?',
    '?','!','<','>','_','_','_','|','|','a','a','a','c','|','|','+','+','c','y','+',
    '+','-','-','+','-','+','a','a','+','+','-','-','|','-','+','.','.','d','e','e',
    'e','i','i','i','i','+','+','_','_','|','i','_','o','o','o','o','o','o','u','p',
    'p','u','u','u','y','y','_',"'",'-','?','_','?','?','S','÷','¸','°','¨','·','¹',
    '³','²','_',' ');
//replace js numeric array values
  var l = 32;
  for (l = 32; l < 256; l++){
    t = t.replace(new RegExp("\\[" + l + ",","gim"),"[" + thechrs[l-32] + ",");
    t = t.replace(new RegExp("\\[" + l + ",","gim"),"[" + thechrs[l-32] + ",");
  }
  for (l = 32; l < 256; l++){
    t = t.replace(new RegExp("," + l + "\\]","gim"),"," + thechrs[l-32] + "]");
    t = t.replace(new RegExp("," + l + "\\]","gim"),"," + thechrs[l-32] + "]");
  }
  for (l = 32; l < 256; l++){
    t = t.replace(new RegExp("," + l + ",","gim"),"," + thechrs[l-32] + ",");
    t = t.replace(new RegExp("," + l + ",","gim"),"," + thechrs[l-32] + ",");
  }
  ta = t;
  t = t.replace(new RegExp("(\\[[^\\]]+)\\,([^\\]]+\\])","gim"), "$1$2");
  while(ta !== t){
    ta = t;
    t = t.replace(new RegExp("(\\[[^\\]]+)\\,([^\\]]+\\])","gim"), "$1$2");
  }
//replace entities
  var l = 32;
  for (l = 32; l < 100; l++){
    t = t.replace(new RegExp("&#" + l + ";","gim"),thechrs[l-32]);
    t = t.replace(new RegExp("&#0" + l + ";","gim"),thechrs[l-32]);
    t = t.replace(new RegExp("&#00" + l + ";","gim"),thechrs[l-32]);
  }
  var l = 100;
  for (l = 100; l < 256; l++){
    t = t.replace(new RegExp("&#" + l + ";","gim"),thechrs[l-32]);
    t = t.replace(new RegExp("&#0" + l + ";","gim"),thechrs[l-32]);
  }
	return t;
}

(function($){
	$.gaTracker = function(code, opts){
		opts = jQuery.extend({
			external:	'/external/',
			mailto:		'/mailtos/',
			download:	'/downloads/',
			extensions: [
					'pdf','doc','xls','csv','jpg','gif', 'mp3',
					'swf','txt','ppt','zip','gz','dmg','xml'		
			]	
		}, opts);
		
		// Returns the given URL prefixed if it is:
		//		a) a link to an external site
		//		b) a mailto link
		//		c) a downloadable file
		// ...otherwise returns an empty string.
		function decorateLink(u){
			var trackingURL = '';
			
			if(u.indexOf('://') == -1 && u.indexOf('mailto:') != 0){
				// no protocol or mailto - internal link - check extension
				var ext = u.split('.')[u.split('.').length - 1];			
				var exts = opts.extensions;
				
				for(i = 0; i < exts.length; i++){
					if(ext == exts[i]){
						trackingURL = opts.download + u;
						break;
					}
				}				
			} else {
				if(u.indexOf('mailto:') == 0){
					// mailto link - decorate
					trackingURL = opts.mailto + u.substring(7);					
				} else {
					// complete URL - check domain
					var regex = /([^:\/]+)*(?::\/\/)*([^:\/]+)(:[0-9]+)*\/?/i;
					var linkparts = regex.exec(u);
					var urlparts = regex.exec(location.href);					
					if(linkparts[2] != urlparts[2]) trackingURL = opts.external + u;
				}
			}
			
			return trackingURL;			
		}
		
		// add tracking code to the current page
		function addTracking(){
			_uacct = code;
			urchinTracker();
		
			// examine every link in the page
			$('a').each(function(){
				var u = $(this).attr('href');
				
				if(typeof(u) != 'undefined'){
					var newLink = decorateLink(u);

					// if it needs to be tracked manually,
					// bind a click event to call GA with
					// the decorated/prefixed link
					if(newLink.length){
						$(this).click(function(){
							urchinTracker(newLink);
						});
					}
				}				
			});
		}
		
		// include the external GA script in try/catch to play nice
		function initGA(){
			try{
				// determine whether to include the normal or SSL version
				var gaURL = (location.href.indexOf('https') == 0 ? 'https://ssl' : 'http://www');
				gaURL += '.google-analytics.com/urchin.js';
		
				// include the script
				$.getScript(gaURL, function(){
					addTracking();
				});
			} catch(err) {
				// log any failure
				//console.log('Failed to load Google Analytics:' + err);
			}
		}
		
		initGA();
	}
})(jQuery);

$.gaTracker('UA-778563-1');
