/* Validation des formulaire */

var errors = "";

function validate_bloc_newsletter(){ 
	var form_is_valid = true;

	var form_votreemail = getValue("form_votreemail");
	
	if(isEmpty(form_votreemail)){
	    form_is_valid = addFormError("form_votreemail","Saisissez votre adresse mail");
	    
	}else if (!isValidEmail(form_votreemail)){
	    form_is_valid = addFormError("form_votreemail","Votre adresse mail n'est pas valide");
	   
	}
	
	return form_is_valid;
}

function validate_form_chgmail_newsletter(){
	var form_is_valid = true;
	init();

	var form_ancienemail = getValue("form_ancienemail");
	if(isEmpty(form_ancienemail)){
	    form_is_valid = addFormError("form_ancienemail","Saisissez votre ancienne adresse mail");
	    
	}else if (!isValidEmail(form_ancienemail)){
	    form_is_valid = addFormError("form_ancienemail","Votre ancienne adresse mail n'est pas valide");
	}

	var form_nouvelemail = getValue("form_nouvelemail");
	if(isEmpty(form_nouvelemail)){
	    form_is_valid = addFormError("form_nouvelemail","Saisissez votre nouvelle adresse mail");
	    
	}else if (!isValidEmail(form_nouvelemail)){
	    form_is_valid = addFormError("form_nouvelemail","Votre nouvelle adresse mail n'est pas valide");
	}

	var form_confirmnouvelemail = getValue("form_confirmnouvelemail");
	if(isEmpty(form_confirmnouvelemail)){
	    form_is_valid = addFormError("form_confirmnouvelemail","Saisissez votre adresse mail de confirmation");
	    
	}else if (!isValidEmail(form_confirmnouvelemail)){
	    form_is_valid = addFormError("form_confirmnouvelemail","Votre adresse mail de confirmation n'est pas valide");
	}


	if (form_is_valid && !(form_nouvelemail==form_confirmnouvelemail)){
	    form_is_valid = addFormError("form_confirmnouvelemail","Votre adresse mail de confirmation n'est pas identique à votre nouvel email");
	}

	flushError();
	return form_is_valid;
}
 
function validate_form_desab_newsletter (){
	var form_is_valid = true;
	init();

	var form_email = getValue("form_email");
	if(isEmpty(form_email)){
	    form_is_valid = addFormError("form_email","Saisissez votre adresse mail");
	    
	}else if (!isValidEmail(form_email)){
	    form_is_valid = addFormError("form_email","Votre adresse mail n'est pas valide");
	}

	var form_confirmemail = getValue("form_confirmemail");
	if(isEmpty(form_confirmemail)){
	    form_is_valid = addFormError("form_confirmemail","Saisissez votre adresse mail de confirmation");
	    
	}else if (!isValidEmail(form_confirmemail)){
	    form_is_valid = addFormError("form_confirmemail","Votre adresse mail de confirmation n'est pas valide");
	}


	if (form_is_valid && !(form_email==form_confirmemail) ){
	    form_is_valid = addFormError("form_confirmemail","Votre adresse mail de confirmation n'est pas identique à votre email");
	}
	
	flushError();
	return form_is_valid;
}
 
function validate_form_ab_newsletter (){
	
	var form_is_valid = true;
	init();
	
	var form_nom = getRadioValue("form_adherent");
	if (isEmpty(form_nom)){
	    form_is_valid = addFormError("form_adherent","Selectionner votre status");
	}
	var form_votreemail = getValue("form_votreemail");
	if(isEmpty(form_votreemail)){
	    form_is_valid = addFormError("form_votreemail","Saisissez votre adresse mail");
	    
	}else if (!isValidEmail(form_votreemail)){
	    form_is_valid = addFormError("form_votreemail","Votre adresse mail n'est pas valide");
	}


	flushError();
	
	if(form_is_valid){
		enableElement('form_votreemail');
	}
	
	return form_is_valid;
}
 
function validate_form_send_friend(){
	var form_is_valid = true;
	init();
	var form_nom = getValue("form_nom");
	if (isEmpty(form_nom)){
	    form_is_valid = addFormError("form_nom","Saisissez votre nom");
	}
	
	var form_prenom = getValue("form_prenom");
	if (isEmpty(form_prenom)){
	    form_is_valid = addFormError("form_prenom","Saisissez votre prenom");
	}
	

	var form_votreemail = getValue("form_votreemail");
	if(isEmpty(form_votreemail)){
	    form_is_valid = addFormError("form_votreemail","Saisissez votre adresse mail");
	    
	}else if (!isValidEmail(form_votreemail)){
	    form_is_valid = addFormError("form_votreemail","Votre adresse mail n'est pas valide");
	}

	var form_amisemails = getValue("form_amisemails");
	if(isEmpty(form_amisemails)){
	    form_is_valid = addFormError("form_amisemails","Saisissez l'adresse mail de vos amis");
	    
	}else if (!isListValidEmail(form_amisemails)){
	    form_is_valid = addFormError("form_amisemails","Les adresses mail de vos amis ne sont pas valides");
	    
	}else if (countEmail(form_amisemails)> 4){
	    form_is_valid = addFormError("form_amisemails","Vous ne pouvez saisir que 4 emails au maximum");
	}
	          

	var form_votremessage = getValue("form_votremessage");
	if (isEmpty(form_votremessage)){
	    form_is_valid = addFormError("form_votremessage","Saisissez votre message");
	}

	flushError();

	return form_is_valid;
	 
}


function init(){
	 errors = "";
	 flushError();
}
 
function isValidEmail(str) {
			
			if (isEmpty(str)) return false;
			return str.match(new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"));
}

function isEmpty(str){
	var result =  (str==null || str.length==0);
	return result;
}


function countEmail (str){

    if (isEmpty(str))    
        return 0;
   
    var emails = str.split(";");
    
    return emails.length;
  
}

function addFormError(elementId,message){
	var error_field = elementId+"_error";
	var error_element = getElement(error_field);
	
	if (error_element){
		error_element.innerHTML = message;
	}
	errors = errors + message + '<br/>';
	
	return false;
}

function isListValidEmail (str){
    
    if (isEmpty(str))    
        return false;
    
    var emails = str.split(";");
    var allIsValid = true;
    
    for(i=0; i<emails.length; i++){
	   allIsValid = allIsValid && isValidEmail(emails[i]);
    }
    
    return allIsValid;
    
}

function cleanError(elementId){
	var error_field = elementId+"_error";
	var error_element = getElement(error_field);
	if (error_element){
		error_element.innerHTML = "&nbsp;";
	}
}

function getValue(elementId){	
	cleanError(elementId);
	var element = getElement(elementId);
	if(element){
		return element.value;
	}else{
		return element;
	}
}

function getRadioValue(elementId){	
	cleanError(elementId);
	var element =  document.getElementsByName(elementId);
	 var value = null;
	for (var i=element.length-1; i > -1; i--) {
        if (element[i].checked) {value = i; i = -1;}
    }
	return value;
	
}

function getElement(elementId){	
	 return document.getElementById(elementId);
}

function flushError(){
	getElement("form_error_zone").innerHTML = errors;
}

function enableElement(elementId){
	var element = getElement(elementId);
	if(element){
		element.disabled=false;
	}
}