// JavaScript Document


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//																																											//
//																		FONCTIONS DE VERIF DE FORMAT																		//
//																																											//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		
	// Expressions régulières de test sur les emails
	var regExpEmail =/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g;
	// Expressions régulières de test de types administratifs français
	var regExpTelephoneFrance =/^[0-9]{10}$/g; //Accepte un numéro en france appelable depuis la france
	// Expressions régulières de test d'une chaine alphanumérique avec accents et avec espaces
	var regExpAlphanumericAvecEspaces = /^[\s0-9A-Za-zäâàáåãéèëêòóôõöøìíîïùúûüýñçþÿæðøÄÂÀÁÅÃÉÈËÊÒÓÔÕÖØÌÍÎÏÙÚÛÜÝÑÇÞÝÆÐØ]+$/g;
	
	function trim(valeur) {
		return valeur.replace(/^\s+/g,'').replace(/\s+$/g,'');
	}

	//Les deux fonction suivantes servent à identifier si une chaine de caractère est compatible ou non avec une expression régulière passée en paramètre
	function matchRegularExpression(valeur, regularExpression) {
				var resultat = valeur.match(regularExpression);
				if(resultat!=null && resultat.length==1) return true;
				else return false;
	}
	
	function email_valide(adresse)
	{
		return matchRegularExpression(adresse, regExpEmail);
	}

	function tel_valide(num)
	{
		return matchRegularExpression(num, regExpTelephoneFrance);
	}

	
	function cp_valide(num)
	{
		var erreur = 0;
		var str = new String(num);
		for(i=0 ; i<str.length ; i++)
		{
			if(isNaN(str.charAt(i))) erreur++;
		}
		
		if(num.length != 5 || erreur != 0 || str.indexOf(' ') != -1) return false;
		else return true;
	}
	
	function estunjour(jour)
	{
		j = new String(jour);
		j1 = j.substr(0,1);
		j2 = j.substr(1,1);
		
		if((!isNaN(j1) && !isNaN(j2)) && (Number(jour) >= 1 && Number(jour) <= 31)) return true;
		else return false;
	}
	
	function estunmois(mois)
	{
		m = new String(mois);
		m1 = mois.substr(0,1);
		m2 = mois.substr(1,1);
		
		if((!isNaN(m1) && !isNaN(m2)) && (Number(mois) >= 1 && Number(mois) <= 12)) return true;
		else return false;
	}
	
	function estuneannee(annee)
	{
		a = new String(annee);
		a1 = annee.substr(0,1);
		a2 = annee.substr(1,1);
		a3 = annee.substr(2,1);
		a4 = annee.substr(3,1);
		
		if((!isNaN(a1) && !isNaN(a2) && !isNaN(a3) && !isNaN(a4)) && (Number(annee) >= 1880)) return true;
		else return false;
	}

	function nbjours_mois(mois,annee)
	{  
		if ((mois==1)||(mois==3)||(mois==5)||(mois==7)||(mois==8)||(mois==10)||(mois==12))
		{
			return(31);
		}	
		else if ((mois==4)||(mois==6)||(mois==9)||(mois==11))
		{
			return(30);
		}
		else if ((mois==2)&&(annee % 4 ==0))
		{
			return(29);
		}
		else
		{
			return(28);
		}
	}
	
	function estunedatevalide(jour,mois,annee)
	{
		if(estunjour(jour) && estunmois(mois) && estuneannee(annee))
		{
			i_jour 	= Number(jour);
			i_mois 	= Number(mois);
			i_annee	= Number(annee);
			
			nb_jours	= nbjours_mois(mois,annee);
			
			if ((i_jour <= 31) && (nb_jours == 31)) return true;
			else if ((i_jour <= 29) && (nb_jours == 29)) return true;
			else if ((i_jour <=28)&&(nb_jours == 28)) return true;
			else if ((i_jour <=30)&&(nb_jours == 30)) return true;
			else return false;
		}
		else
		{
			return false;
		}
	}
	
	function date_valide(date)
	{
		var erreurs = 0;
		d = new String(date);
		// 1) on vérifie le format jj/mm/aaaa (10 caractères + position des /)
		
		longueur 			= d.length;
		firstslash			= d.substr(2 , 1);
		lastslash			= d.substr(5 , 1);
		posfirstslash		= d.indexOf("/");
		poslastslash		= d.lastIndexOf("/");
		
		// 2) on s'assure de la validite des dates (valeurs numériques + limites)
		
		date_jour	= d.substr(0 , 2);
		date_mois	= d.substr(3 , 2);
		date_annee	= d.substr(6 , 4);
		
		// 3) on teste le tout
		
		if(longueur != 10) erreurs++;
		if(firstslash != "/") erreurs++;
		if(lastslash != "/") erreurs++;
		if(posfirstslash != 2) erreurs++;
		if(poslastslash != 5) erreurs++;
		if(!estunedatevalide(date_jour,date_mois,date_annee)) erreurs++;
		
		// 4) on transmet le résultat
		
		if(erreurs == 0) return true;
		else return false;
	}
	
	function verifier_age_limite_prospect(date_n,date_effet)
	{
		age_date_effet = age(date_n,date_effet);
		if(age_date_effet >= 50 || age_date_effet < 16) {
			return 1;
		} else {
			return 0;
		}
	}
	
	function verifier_age_limite_cobenef(date_n,date_effet)
	{
		if(age(date_n,date_effet) >= 50) {
			return 1;
		} else {
			return 0;
		}
	}
	
	function age(date_n,date_effet) {
		effet_annee = Number(new String(date_effet).substr(0,4));
		effet_mois = Number(new String(date_effet).substr(5,2));
		effet_jour = Number(new String(date_effet).substr(8,2));
		naissance_annee = Number(new String(date_n).substr(6,4));
		naissance_mois = Number(new String(date_n).substr(3,2));
		naissance_jour = Number(new String(date_n).substr(0,2));
		age_date_effet = effet_annee - naissance_annee;
		if (naissance_mois > effet_mois) {
			age_date_effet--;
		} else if(effet_mois == naissance_mois) {
			if (naissance_jour > effet_jour) {
				age_date_effet--;
			}
		}
		return age_date_effet;
	}
	
	function afficher_message_age_limite(alerte)
	{
		if(alerte) alert("Vous devez avoir plus de 16 ans et vous (ou l'un de vos co-bénéficiaires) devez avoir moins de 50 ans à la date de prise d'effet. Merci de nous contacter au 0810 600 702.");
		document.getElementById('mentions_limite_age').style.display = 'block';
		document.form_callback_limite.num_callback.value = document.form.telephone.value;
	}
	function cacher_message_age_limite()
	{
		document.getElementById('mentions_limite_age').style.display = 'none';
	}


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//																																											//
//																				FONCTIONS GENERIQUES																		//
//																																											//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	function valeurradio(rd)
	{
		cocher=0;
			
		for(i=0;i<rd.length;i++)
		{
			if(rd[i].checked) cocher=rd[i].value;
		}
			
		return cocher;
	}

	function afficher_layer(info,etat)
	{
		var object = info;
		
		if (document.layers && document.layers[object])
		{ 
			//document.layers[object].visibility = etat;
			if(document.layers[object]) document.layers[object].display = etat;
		} 
		else if (document.all)
		{ 
			//document.all[object].style.visibility = etat;
			if(document.all[object]) document.all[object].style.display = etat;
		}
		else if (document.getElementById) 
		{
			//document.getElementById(object).style.visibility = etat; 
			if(document.getElementById(object)) document.getElementById(object).style.display = etat;
		} 
	}
	
	function afficher_alerte(chp,etat)
	{
		document.images["img_alerte_"+chp].style.display = etat;
	}



