/**
* function sendDevisStep1()
* Consiste à vérifier de façon cyclique les champs du formulaires
* de l'étape 1 du devis.
* Si tous les champs sont validéé, on enregistre les données en session
* via ajax puis on redirige vers l'etape 2.
*/
function sendDevisStep1() 
{
	viewFormEvent(true);
	
	var validate = true;
	
	if(!validSelect($('nb-adultes'), 0)) {
		validate = false;
	}
	
	if(!validSelect($('nb-enfants'), 'none')) {
		validate = false;
	}
	
	if(!validSelect($('titre'), 0)) {
		validate = false;
	}
	
	if(!validFilled($('nom'), '')) {
		validate = false;
	}
	
	if(!validFilled($('prenom'), '')) {
		validate = false;
	}
	
	/*if(!validBirthday()) {
		validate = false;
	}*/
	
	if(!validFilled($('num-voie'), '')) {
		validate = false;
	}
	
	if(!validFilled($('codepostal'), '')) {
		validate = false;
	}
	
	if(!validFilled($('ville'), '')) {
		validate = false;
	}
	
	if(!validEmail($('email'))) {
		validate = false;
	}
	
	if(!validFilled($('tel-fixe'), '')) {
		validate = false;
	}
	
	if(validate == true) {
		viewFormEvent(true, 'loader');
		saveDataForStep1();
	} else {
		viewFormEvent(true, 'error');
	}
}

function saveDataForStep1() 
{
	new Ajax.Request(WEBHOST + '/devis/saveOneStep',{
		  method: 'post',
		  parameters: $('formStep1').serialize(true),
		  onSuccess: function(transport) {
		       location.href = WEBHOST + '/devis/etape2';
		  }
		
	});
}

/**
* function sendDevisStep2()
* Consiste à vérifier de façon cyclique les champs du formulaires
* de l'étape 2 du devis.
* Si tous les champs sont validés, un mail est envoyer au client et à vistelia
*/
function sendDevisStep2() 
{
	
	
	var validate = true;
	
	
	/*if(!validDateFx()) {
		validate = false;
	}*/
	
	if($('birth-day-adult-1')) {
		if(!validBirthday(1, 'adult-1')) {
			validate = false;
		}
	}
	
	if($('birth-day-adult-2')) {
		if(!validBirthday(1, 'adult-2')) {
			validate = false;
		}
	}
	
	if($('birth-day-child-1')) {
		if(!validBirthday(1, 'child-1')) {
			validate = false;
		}
	}
	
	if($('birth-day-child-2')) {
		if(!validBirthday(1, 'child-2')) {
			validate = false;
		}
	}
	
	if($('birth-day-child-3')) {
		if(!validBirthday(1, 'child-3')) {
			validate = false;
		}
	}
	
	if($('birth-day-child-4')) {
		if(!validBirthday(1, 'child-4')) {
			validate = false;
		}
	}
	
	if($('birth-day-child-5')) {
		if(!validBirthday(1, 'child-5')) {
			validate = false;
		}
	}
	
	if($('birth-day-child-6')) {
		if(!validBirthday(1, 'child-6')) {
			validate = false;
		}
	}
	
	if(!validSelect($('regime-social'), 0)) {
		validate = false;
	}
	
	if(!validSelect($('had-mutuelle'), 0)) {
		validate = false;
	}
	
	if(!validSelect($('change-motif'), 0)) {
		validate = false;
	}
	
	if(validate == true) {
		saveDataForStep2();
	} else {
		viewFormEvent(true);
		viewFormEvent(true, 'error');
	}
}

function saveDataForStep2() 
{
	new Ajax.Request(WEBHOST + '/devis/sendmail',{
		  method: 'post',
		  parameters: $('formStep2').serialize(true),
		  onSuccess: function(transport) {
		       var response = transport.responseText;
		       if (response == 'success') {
			      //viewFormEvent(true, 'success');
			      location.href = WEBHOST + '/devis/merci';
			   } else {
			   	  viewFormEvent(true);
			      viewFormEvent(true, 'error');
			   }
		  }
		
	});
}

function sendCall() 
{
	validate = true; 
	
	if(!validFilled($('nom'), '')) {
		validate = false;
	}
	
	if(!validFilled($('prenom'), '')) {
		validate = false;
	}
	
	if(!validFilled($('tel'), '')) {
		validate = false;
	}
	
	if(!validFilled($('email'), '')) {
		validate = false;
	}
	
	if(!validFilled($('when'), '')) {
		validate = false;
	}
	
	if(validate == true) {
		new Ajax.Request(WEBHOST + '/call/sendmail',{
			  method: 'post',
			  parameters: $('formStep1').serialize(true),
			  onSuccess: function(transport) {
			       var response = transport.responseText;
			       if (response == 'success') {
				      //viewFormEvent(true, 'success');
				      location.href = WEBHOST + '/call/merci';
				   } else {
				      viewFormEvent(true, 'error');
				   }
			  }
			
		});
	} else {
		viewFormEvent(true);
		viewFormEvent(true, 'error');
	}
	
		
}


function viewFormEvent(toggle, type) 
{
	if(toggle == true) {		
		Effect.Appear('form-events');
		Effect.Appear('form-events-background', {from:0.0, to:0.75});
		$('conteneur').scrollTo();
		
		if(type == 'loader') {
			$('form-events-loader').style.display = '';
			$('form-events-success').style.display = 'none';
			$('form-events-error').style.display = 'none';
		}
		if(type == 'success') {
			$('form-events-loader').style.display = 'none';
			$('form-events-success').style.display = '';
			$('form-events-error').style.display = 'none';
		}
		if(type == 'error') {
			$('form-events-loader').style.display = 'none';
			$('form-events-success').style.display = 'none';
			$('form-events-error').style.display = '';
		}
		
	} else {
		/*$('form-events').style.display = 'none';
		$('form-events-background').style.display = 'none';*/
		Effect.Fade('form-events');
		Effect.Fade('form-events-background');
	}
}


function validFilled(element, defaultValue) 
{
	var notice = $(element.id + '-validator');
		    	    
    if (element.value == defaultValue) {
		notice.update('Ce champ est obligatoire !');
		notice.className = "validator-failed";
		element.className = "input-red";
		return false;
    } else {
    	notice.update('&nbsp;');
    	notice.className = "validator-success";
		element.className = "input-green";
    }
    
    return true;
}

function validSelect(element, defaultValue) 
{
	var elementValue = element.options[element.selectedIndex].value;	
	var notice = $(element.id + '-validator');
			    	    
    if (elementValue == defaultValue) {
		notice.update('Ce champ est obligatoire !');
		notice.className = "validator-failed";
		element.className = "input-red";
		element.style.padding = '0';
		return false;
    } else {
    	notice.update('&nbsp;');
    	notice.className = "validator-success";
		element.className = "input-green";
		element.style.padding = '0';
    }
    
    return true;
}

function validBirthday(isNow, suffix) 
{ 
	var isValid = true;
	var notice = $('birthday-'+suffix+'-validator');
	
    if ($('birth-day-'+suffix).options[$('birth-day-'+suffix).selectedIndex].value == 0) {
		$('birth-day-'+suffix).className = "input-red";
		$('birth-day-'+suffix).style.padding = '0';
		isValid = false;
    } else {
    	$('birth-day-'+suffix).className = "input-green";
		$('birth-day-'+suffix).style.padding = '0';
	}
    
    if ($('birth-month-'+suffix).options[$('birth-month-'+suffix).selectedIndex].value == 0) {
		$('birth-month-'+suffix).className = "input-red";
		$('birth-month-'+suffix).style.padding = '0';
		isValid = false;
    } else {
    	$('birth-month-'+suffix).className = "input-green";
		$('birth-month-'+suffix).style.padding = '0';
	}
    
    if ($('birth-year-'+suffix).options[$('birth-year-'+suffix).selectedIndex].value == 0) {
		$('birth-year-'+suffix).className = "input-red";
		$('birth-year-'+suffix).style.padding = '0';
		isValid = false;
    } else {
    	$('birth-year-'+suffix).className = "input-green";
		$('birth-year-'+suffix).style.padding = '0';
	}
    
    if(!isValid) {
    	if(!isNow) notice.update('Date invalide !');
		notice.className = "validator-failed";
	} else {
		notice.update('&nbsp;');
		notice.className = "validator-success";
		
	}
    
    return isValid;
}

function validEmail(element) 
{
	var isValid = true;
	
	new Ajax.Request(WEBHOST + '/form/validEmail/email/'+element.value,{
		  method: 'get',
		  onSuccess: function(transport) {
			    var response = transport.responseText;
			    var notice = $('email-validator');

			    if (response == 'success') {
			      notice.update('Adresse e-mail valid&eacute;e avec succ&eacute;s !');
			      notice.className = "validator-success";
			      element.className = "input-green";
			      isValid = true;
			    } else {
			      notice.update('Votre adresse e-mail est invalide !');
			      notice.className = "validator-failed";
			      element.className = "input-red";
			      isValid = false;
			    }
		  }
		
	});
	
	return isValid;
}



function validDateFx(isNow) 
{
	var isValid = true;
	var notice = $('date-fx-validator');
	
    if ($('date-fx-month').options[$('date-fx-month').selectedIndex].value == 0) {
		$('date-fx-month').className = "input-red";
		$('date-fx-month').style.padding = '0';
		isValid = false;
    } else {
    	$('date-fx-month').className = "input-green";
		$('date-fx-month').style.padding = '0';
	}
    
    if ($('date-fx-year').options[$('date-fx-year').selectedIndex].value == 0) {
		$('date-fx-year').className = "input-red";
		$('date-fx-year').style.padding = '0';
		isValid = false;
    } else {
    	$('date-fx-year').className = "input-green";
		$('date-fx-year').style.padding = '0';
	}
    
    if(!isValid) {
    	if(!isNow) notice.update('Date invalide !');
		notice.className = "validator-failed";
	} else {
		notice.update('&nbsp;');
		notice.className = "validator-success";
		
	}
    
    return isValid;
}


function disableSelect(checkbox) 
{
	if(checkbox.checked) { 
		$('date-end-contrat-month').disabled = true; 
		$('date-end-contrat-year').disabled = true; 
	} else {
		$('date-end-contrat-month').disabled = false;
		$('date-end-contrat-year').disabled = false;
	}
}



