// JavaScript Document

$(document).ready( function(){	


		 callBackError =  myHighLightError ;
		   		 			 
		 function  myHighLightError (response)
		{
		
		 // alert('myHighLightError');
		  var data_collection = response.data_collection ; // tout les datas retournés , trimés
		  var error_collection =  response.error_collection ; // les champs a probléme
		  
          message_error = ["name"  , "first_name" , "email" , "login" , "sex" , "date_birth"];
		  
		  
		  //cleanage  / refresh ajax
	$("span[id='icon_field']").remove();
	$("div[id='error_message']").remove();
	
	$(".valideElement").removeClass("valideElement");
	$(".errorElement").removeClass("errorElement");
		  
		  
		  if(browser == 'light')
		  {
		   var size_icon = " width='14' height='14' " ;
		  } else {
		   var size_icon = " width='20' height='19' " ;
		  }
		  
		  
		  // case probleme date : invalide ou minor
		
		date_birth_statut = error_collection['date_birth'] ;
		
		$('#error_message_minor').remove();	

		if(typeof(date_birth_statut) !== 'undefined') 
		{
		 
		 showMessageError('date_birth','minor')  ;
		 var classToAdd =  "errorElement" ;
         var check_icon =  error_icon ;

       $('#day_birth,#month_birth,#year_birth').addClass("errorElement") ;
	  var error_icon =  "<span id='icon_field' class='icon_field'><img src='/images/img_form/error_icon.png' alt='ok' " + size_icon + "/></span>" ; 
	  	  
	  $("#year_birth_line").after(error_icon) ;
	  
	  date_birth = false ;
	    
	 
		} else {
		$('#error_message_minor').remove();	
		date_birth = true ;
		}
		  
		  

	  
	  
	  var ok_icon =  "<span id='icon_field' class='icon_field'><img src='/images/img_form/ok_icon.png' alt='ok' " ;
	  ok_icon += size_icon ;
	  ok_icon += "/></span>" ;
	  
	  
	  var error_icon =  "<span id='icon_field' class='icon_field'><img src='/images/img_form/error_icon.png' alt='ok' " ; 
	  error_icon += size_icon ;
	  error_icon += "/></span>" ;
	   
	  var group_icon =  ok_icon ; // default
	 
	   $.each( data_collection, function(key, value)
				{ 
					$verif = error_collection[key] ;

					// $('body').prepend($verif + '->' + value + ':' + key); 
					
					
					if(key == 'day_birth' || key == 'month_birth' || key == 'year_birth')
					{
						if( typeof(date_birth)!='undefined' && date_birth == false ){return true ;} // equivalent continue
					}
					
			
					if(typeof($verif) == 'undefined') // pas trouvé dans l'objet erreur => champs ok
					{
					var classToAdd =  "valideElement" ;
					var check_icon =  ok_icon ;
					
					} else {
					var classToAdd =  "errorElement" ;
					var check_icon =  error_icon ;
					}
					
					
					
					 var type_of_input = $( ' #' + key).attr('type')
				     // $('body').append(' #' + key + ' --> ' + type_of_input + ' <--');
					
			    if(type_of_input != 'hidden')
			    {
					
					$( ' #' + key).addClass(classToAdd) ;
					
					  // si on est dans un groupement, style date de naissance
					 var group =  $ (' #' + key).parents("div[id='group_date_birth']") ;	 
						
						 if ( group.length > 0 )  
						 { 
							 var  last_element =  $('#' + group.attr('id') + " div:last").children().attr('id') ; 
							 if(check_icon == error_icon) { group_icon =  error_icon} ;
							 if( key == last_element)
							 {
							  $('#' + group.attr('id') + " div:last").after(group_icon) ; 
							   group_icon =  ok_icon ; // default					
							 }

						 } else {
						   
						   
						  
						 
						  // $( ' #' + key).parent()+ " div:last".after(check_icon) ;
						   
						//  var  last_element =  $('#' + group.attr('id') + " div:last").children().attr('id') ; 

						
						 
						 line_id = $( ' #' + key).parent().attr('id');
						 
						 // $('#day_birth_line').prepend(line_id) ;

						  //alert(); 
						 
						// $("tr:last").css({backgroundColor: 'yellow', fontWeight: 'bolder'});
						
						 last_all = $('#'+line_id + " div:last");
						 
						 last_all.after(check_icon) ;
						 
						 
						 // $('body').prepend(key + '->' + line_id +' : ' + last_all + ' ||' );
						 // $('body').prepend(last_div +' -- ');
						  
						 //  $( ' #' + key).after(check_icon) ;
						  
						 }
				
				
				if( check_icon == error_icon && jQuery.inArray( key, message_error ) != -1)
				 {
					showMessageError(key,value) ;
				 } 
			 
				 
				 
				} // end if(type_of_input != 'hidden')
				 
				 });	 // end each 
				 
				 
				 
	 $(".errorElement , .valideElement").bind("focus", function(){
	 $(this).removeClass("errorElement");
	 $(this).removeClass("valideElement");
	 $(this).parent().children("#icon_field").remove();
	 $(this).parent().parent().children("#icon_field").remove(); 
    });
	  

	}
	
		
		
function showMessageError(key,value)
{
		
		var line = $( ' #' + key).parent("div").attr('id') ;
		
		 if(key=='date_birth'){ line = $('#group_date_birth').attr('id')  ; } 
		

		
		switch(key)
		{
		
		
		
		case 'date_birth':
		// alert('date_birth message ' ) ; 
		message = "Vous devez être <strong>majeur</strong> pour vous inscrire " ;
		alert_message = "<div id='error_message_minor' class='errorMessage'>" + message +  "</div>" ;	
		break;
		

		case 'name':
		
		if(value == 'empty')
		{message = 'Vous devez remplir le champs <strong>Nom</strong>'}
		else
		{message = 'Pas de caract&eacute;res sp&eacute;ciaux  dans le nom' }
		alert_message = "<div id='error_message' class='errorMessage'>" + message +  "</div>" ;
		
		break;
		
		case 'first_name':
		
		if(value == 'empty')
		{message = 'Vous devez remplir le champs <strong>Pr&eacute;nom</strong>'}
		else
		{message = 'Pas de caract&eacute;res sp&eacute;ciaux  dans le pr&eacute;nom'}
		alert_message = "<div id='error_message' class='errorMessage'>" + message +  "</div>" ;
		
		break;
		
		
		
		case 'sex':
	    message = "Merci d'indiquer votre civilit&eacute : <strong>Mr</strong>, <strong>Mme</strong>, <strong>Mlle</strong>" ;
		alert_message = "<div id='error_message' class='errorMessage'>" + message +  "</div>" ;	
		break ;
		
		

		
		case 'email':
		
		if(value == 'empty') {message = 'Indiquez votre <strong>Email</strong>'}
		if(value == false) {message = 'Votre email ne semble pas valide'}
		if(value == 'doublon') {message = "Cet email existe déja, cliquez <a href='password_recovery' class='forgotten fourth_color'>ici </a> pour récupérer vos identifiants"} 
		
		
		alert_message = "<div id='error_message' class='errorMessage'>" + message +  "</div>" ;
		
		break;
		
		
		case 'login':
		
		if(value == 'empty') { message = 'Indiquez un <strong>Pseudo</strong>' ; }
		if(value == false) { message = 'Pseudo invalide, uniquement lettres et chiffres' ; }
		if(value == 'doublon') 
		{ 
		var doublon_login =  $('#login').val() ;
		message = 'Ce pseudo existe déja, nous vous proposons :' ; 
		propo_pseudo(doublon_login) ; 
		
		}
		
		alert_message = "<div id='error_message' class='errorMessage'>" + message +  "</div>" ;
		
		break;
		
		
		default: 
		return false ; 
	    break;

		}
		
		
		$('#' + line ).before(alert_message) ;
		// alert('ajout effectue before ' +  line + ' , message =  ' + message  ) ;
		
}	
		
		
	function propo_pseudo(pseudo) 
	{
	   var page =  '_propo_pseudo' ;
	   info = new Object ;
	   info.pseudo =  pseudo ; 
		
		$.post(   page ,
			      info ,
					function(retour)  
					{ 		 
					 //alert(retour.pseudo_found) ;
					 
					 var pseudo_found =  retour.pseudo_found ;
					 
					 if(pseudo_found != '')
					 {
						 $('#login').val(pseudo_found);
					 }
					 
					 
					} 
					  , "json"
				);
		
	}
		
		
		
		
}); // ready
