function trim(myString) {
	return myString.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

function isEntier (nombre) {
	var num=/^\d+\d*$/;
	return nombre.match(num);
}

function isAlpha (texte) {
	var expr=/^[^0-9]*$/;
	return texte.match(expr);
}

function isEmail (email) {
	var expr=/^[a-z\d]+((\.|-|_)[a-z\d]+)*@((?![-\d])[a-z\d-]{0,62}[a-z\d]\.){1,4}[a-z]{2,6}$/gi;
	return (email.match(expr)==email)&&(email.substr(email.lastIndexOf("@")).length<=256);
}

function replaceAll(str,c1,c2) {
	num=str.indexOf(c1,0);
	while(num!=-1)
	{
		str=str.replace(c1,c2);
		num=str.indexOf(c1,num);
	}
	return str;
}

function removeSpace(myString) {
	return myString.replace(/\s+/g,'');
}

function isMontant(myString) {
	var montant = removeSpace(myString);	
	if ( montant == '') {
	  return false;
	}
	montant=replaceAll(montant,',','.');
	var montantRegexp = new RegExp('^\\d+\\.?\\d*$');
	if ( !montantRegexp.test(montant) ) {
		return false;
	}
	return montant;
}
	
function controleFormParticulier() {

	var chaine='';
	
	if (document.getElementsByName("titre")[0].checked == false && 
		document.getElementsByName("titre")[1].checked == false && 
		document.getElementsByName("titre")[2].checked == false 
	) {
		chaine += "- Veuillez cocher votre Titre\n";
	}

	if (trim(document.getElementsByName("nom")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Nom\n";
	}
	else {
		if (!isAlpha(document.getElementsByName("nom")[0].value)) {
			chaine += "- Champ Nom : les chiffres sont interdits\n";
		}
	}
	
	if (trim(document.getElementsByName("prenom")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Prénom\n";
	}
	else {
		if (!isAlpha(document.getElementsByName("prenom")[0].value)) {
			chaine += "- Champ Prénom : les chiffres sont interdits\n";
		}
	}
	
	if (trim(document.getElementsByName("entreprise")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Entreprise\n";
	}
	
	if (trim(document.getElementsByName("telephone")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Téléphone\n";
	}
	else {
		if (!isEntier(document.getElementsByName("telephone")[0].value) || 
			document.getElementsByName("telephone")[0].value.length != 10) {
			chaine += "- Champ Téléphone : le champ doit être sur 10 caractères numériques\n";
		}
	}
	
	if (document.getElementsByName("rendezvous")[0].checked == false &&
		document.getElementsByName("rendezvous")[1].checked == false
	) {
		chaine += "- Veuillez cocher votre Rendez-vous\n";
	}
	
	if (document.getElementsByName("rendezvous")[1].checked == true) {
		if (trim(document.getElementsByName("heuredebut")[0].value) == '') {
			chaine += "- Veuillez renseigner votre Heure de début\n";
		}
		else {
			if (!isEntier(document.getElementsByName("heuredebut")[0].value) || 
				document.getElementsByName("heuredebut")[0].value.length != 2 ||
				document.getElementsByName("heuredebut")[0].value < 0 || 
				document.getElementsByName("heuredebut")[0].value > 23) {
				chaine += "- Champ Heure de début : le champ doit être sur 2 caractères numériques valables\n";
			}
		}
		if (trim(document.getElementsByName("minutedebut")[0].value) == '') {
			chaine += "- Veuillez renseigner votre Minute de début\n";
		}
		else {
			if (!isEntier(document.getElementsByName("minutedebut")[0].value) || 
				document.getElementsByName("minutedebut")[0].value.length != 2 ||
				document.getElementsByName("minutedebut")[0].value < 0 || 
				document.getElementsByName("minutedebut")[0].value > 59) {
				chaine += "- Champ Minute de début : le champ doit être sur 2 caractères numériques valables\n";
			}
		}
		if (trim(document.getElementsByName("heurefin")[0].value) == '') {
			chaine += "- Veuillez renseigner votre Heure de fin\n";
		}
		else {
			if (!isEntier(document.getElementsByName("heurefin")[0].value) || 
				document.getElementsByName("heurefin")[0].value.length != 2 ||
				document.getElementsByName("heurefin")[0].value < 0 || 
				document.getElementsByName("heurefin")[0].value > 23) {
				chaine += "- Champ Heure de fin : le champ doit être sur 2 caractères numériques valables\n";
			}
		}
		if (trim(document.getElementsByName("minutefin")[0].value) == '') {
			chaine += "- Veuillez renseigner votre Minute de fin\n";
		}
		else {
			if (!isEntier(document.getElementsByName("minutefin")[0].value) || 
				document.getElementsByName("minutefin")[0].value.length != 2 ||
				document.getElementsByName("minutefin")[0].value < 0 || 
				document.getElementsByName("minutefin")[0].value > 59) {
				chaine += "- Champ Minute de fin : le champ doit être sur 2 caractères numériques valables\n";
			}
		}
	}
	
	if (chaine != '') {
		alert(chaine);
		return false;
	}
	else {
		return true;
	}
}

function controleFormEntreprise() {

	var chaine='';

	if (trim(document.getElementsByName("telephone")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Téléphone\n";
	}
	else {
		if (!isEntier(document.getElementsByName("telephone")[0].value) || 
			document.getElementsByName("telephone")[0].value.length != 10) {
			chaine += "- Champ Téléphone : le champ doit être sur 10 caractères numériques\n";
		}
	}
	
	if (trim(document.getElementsByName("nom")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Nom\n";
	}
	else {
		if (!isAlpha(document.getElementsByName("nom")[0].value)) {
			chaine += "- Champ Nom : les chiffres sont interdits\n";
		}
	}
	
	if (trim(document.getElementsByName("prenom")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Prénom\n";
	}
	else {
		if (!isAlpha(document.getElementsByName("prenom")[0].value)) {
			chaine += "- Champ Prénom : les chiffres sont interdits\n";
		}
	}
	
	if (trim(document.getElementsByName("societe")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Société\n";
	}
	
	if (trim(document.getElementsByName("fonction")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Fonction\n";
	}
	
	if (trim(document.getElementsByName("email")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Email\n";
	}
	else {
		if (!isEmail(document.getElementsByName("email")[0].value)) {
			chaine += "- Champ Email : la syntaxe est incorrecte\n";
		}
	}
	
	if (chaine != '') {
		alert(chaine);
		return false;
	}
	else {
		return true;
	}
}

function controleFormAuthentification() {

	var chaine='';
	
	if (trim(document.getElementsByName("nom")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Nom\n";
	}
	
	if (trim(document.getElementsByName("contrat")[0].value) == '') {
		chaine += "- Veuillez renseigner votre Numéro de contrat\n";
	}
	
	if (chaine != '') {
		alert(chaine);
		return false;
	}
	else {
		return true;
	}
}

function controleFormCreditAffecteA() {
	var msg = "";
	var nominal = trim(document.simulateur_antios.nominalSMens.value);
	var nominalClean = 0;
	var duree = trim(document.simulateur_antios.dureeSMens.value);

	if (nominal == ''){
		msg += "- Veuillez renseigner un montant de financement entre 1.500 et 21.500 euros \n"; 
	} else {
		nominalClean = isMontant(nominal)
	  	if ( ! nominalClean ) {  
	  		msg += "- Le montant de financement doit être un numérique entre 1.500 et 21.500 \n";
	  	} else {
			if (nominalClean < 1500 || nominalClean > 21500) {
				msg += "- Le montant de votre financement doit être compris entre 1.500 et 21.500 euros\n";
			}
	  	}
	}
	
	if (duree == ''){
		msg += "- Veuillez renseigner une durée de remboursement entre 12 et 96 mois \n"; 
	} else {
		if ( ! isEntier(duree) ) {
			msg += "- La durée du remboursement doit être un chiffre compris entre 12 et 96 \n";
		} else {
			if (duree < 12 || duree > 96) {
				msg += "- La durée du remboursement doit être compris entre 12 et 96 mois \n";
			}
		}
	}
	
	if (msg != '') {
		alert(msg);
		return false;
	}

	document.simulateur_antios.nominalSMens.value = nominalClean;
	document.simulateur_antios.typeSimulation.value = "simuMensualite";
	document.simulateur_antios.fromUrl.value=document.location.href;
	return true;
}

function controleFormCreditAffecteB() {
	var msg = "";
	var mensualite = trim(document.simulateur_antios.mensualiteSNomi.value);
	var mensualiteClean = 0;
	var duree = trim(document.simulateur_antios.dureeSNomi.value);
	
	if (mensualite == ''){
		msg += "- Veuillez renseigner une mensualité en euros \n"; 
	} else {
		mensualiteClean = isMontant(mensualite)
	  	if ( ! mensualiteClean ) {  
	  		msg += "- Le montant de la mensualité doit être un numérique \n";
	  	}
	}
	
	if (duree == ''){
		msg += "- Veuillez renseigner une durée de remboursement entre 12 et 96 mois \n"; 
	} else {
		if ( ! isEntier(duree) ) {
			msg += "- La durée du remboursement doit être un chiffre compris entre 12 et 96 \n";
		} else {
			if (duree < 12 || duree > 96) {
				msg += "- La durée du remboursement doit être compris entre 12 et 96 mois \n";
			}
		}
	}
	
	if (msg != '') {
		alert(msg);
		return false;
	}

	document.simulateur_antios.mensualiteSNomi.value = mensualiteClean;
	document.simulateur_antios.typeSimulation.value = "simuNominal";
	document.simulateur_antios.fromUrl.value=document.location.href;
	return true;

}

function verifAnneeNumerique(annee){
	// Pour la passe à l'affichage de la page
	if(annee == "")
		return true;
		
	if (!isMontant(annee)){
		alert("- La valeur que vous venez d'entrer doit être numérique");
		return false;
	}
	else{
		return true;
	}
}

var bonnesAnnees = "non";
function calculTotalEpargne(annee){
	var champAnnee = eval("document.credit_revolving.annee" + annee + ".value");
	
	if (verifAnneeNumerique(champAnnee)){
		var anneeX = 0;
		var montantAnnees = new Array();
		var champRenseigne = 0;
		for(i=1; i<6 ;i++){
			anneeX = eval("document.credit_revolving.annee" + i + ".value");
			if(anneeX != ""){
				montantAnnees[i-1] = isMontant(anneeX);
				champRenseigne = i;
			}
			else{
				montantAnnees[i-1] = 0;
			}
		}
		if(champRenseigne != 0){
			document.credit_revolving.totalEpargne.value = 0;
			for(i=0; i<5 ;i++){
				document.credit_revolving.totalEpargne.value = parseFloat(document.credit_revolving.totalEpargne.value) + parseFloat(montantAnnees[i]);			
			}
		}
		bonnesAnnees = "oui";
	}
	else {
		document.credit_revolving.totalEpargne.value = "NaN";
	}
}

function controleFormCreditRevolving(mobilisation) {
	var chaineErreurVide = "";

	// Si le total est vide, c'est qu'aucun montant d'année n'a été fourni
	if (!isMontant(document.credit_revolving.totalEpargne.value) || document.credit_revolving.totalEpargne.value == 0){
		chaineErreurVide += "- Vous devez donner le montant de votre épargne pour au moins une année (en numérique)\n";
	}
	// Présence du montant du projet
	if (!isMontant(document.credit_revolving.montantProjet.value) || document.credit_revolving.montantProjet.value == 0){
		chaineErreurVide += "- Vous n'avez pas rempli le montant de votre projet (en numérique)";
	}
	if(chaineErreurVide != ""){	
		alert(chaineErreurVide);
		return false;
	}
	
	if(bonnesAnnees == "non"){
		return false;
	}
	else{
		var montantMax = document.credit_revolving.totalEpargne.value * mobilisation;
		if(document.credit_revolving.montantProjet.value > montantMax){
			alert("Nous ne pouvons vous accorder une utilisation qu'à hauteur de " + Math.round(montantMax*100)/100 + " \u20AC");
			document.credit_revolving.montantProjet.value = Math.round(montantMax*100)/100;
			return false;
		}
		else{
			return true;
		}
	}
	
}

function calculerAnnees(){
	var d = new Date();
	var jourRef = d.getDate();
	var moisRef = d.getMonth();
	var anneeRef = d.getFullYear();

   				////     Date de première utilisation     ////
   	var moisPremUtil = 0;
   	var anneePremUtil = 0;
   	
   	// Si le jour de référence est le premier du mois
   	// alors la date de première utilisation est la date de référence
   	if(jourRef == 1){
       	moisPremUtil = moisRef;
       	anneePremUtil = anneeRef;
   	}
   	else{
   		// Si l'on était en Décembre, on passe en Janvier (ie revenir à 1)
   		if(moisRef == 12){
   			moisPremUtil = 1;
   		}
   		else{
   			moisPremUtil = moisRef +1;
   		}
   		
   		// Si l'on était en Décembre, on passe à l'année supérieure
   		if(moisRef == 12){
   			anneePremUtil = anneeRef +1;
   		}
   		else{
   			anneePremUtil = anneeRef;
   		}
   	}
   	
				////     1er Avril suivant date de première utilisation     ////
   	var anneePremAvril = 0;
   	
   	if(4 > moisPremUtil){
   		anneePremAvril = anneePremUtil;
   	}
   	else{
   		anneePremAvril = anneePremUtil +1;
   	}
   	
   	return anneePremAvril;
}
