// JavaScript Document

function RappelImmediat() {
var largeur = document.body.clientWidth;
var width_calque = 270;
var pos_centre = (largeur/2) - (270/2);
var top_centre = 30;
 mafenetre = window.open('http://www.assuralys.fr/IhmRappel.php', 'Rappel_Auto', 'top=' + top_centre + ', left=' + pos_centre + ', width=270,height=320,scrollbars=auto');
 mafenetre.focus();
}

function addDaysToDate(old_date, delta_days)
 {
    // Date plus plus quelques jours
    var split_date = old_date.split('/');
    // Les mois vont de 0 a 11 donc on enleve 1, cast avec *1
    var new_date = new Date(split_date[2], split_date[1]*1 - 1, split_date[0]*1 + delta_days);
    var new_day = new_date.getDate();
        new_day = ((new_day < 10) ? '0' : '') + new_day; // ajoute un zéro devant pour la forme  
    var new_month = new_date.getMonth() + 1;
        new_month = ((new_month < 10) ? '0' : '') + new_month; // ajoute un zéro devant pour la forme  
    var new_year = new_date.getYear();
        new_year = ((new_year < 200) ? 1900 : 0) + new_year; // necessaire car IE et FF retourne pas la meme chose  
    var new_date_text = new_day + '/' + new_month + '/' + new_year;
    return new_date_text;
}

function DatePromotion(){
$DateDuJour = new Date()
$TypeJour=$DateDuJour.getDay();
$NbJour = 0;
switch ($TypeJour)
{ 	case 0 : $NbJour = 5;break; //Dimanche
	case 1 : $NbJour = 4;break; //Lundi
	case 2 : $NbJour = 3;break; //Mardi
	case 3 : $NbJour = 2;break; //Mercredi
	case 4 : $NbJour = 1;break; //Jeudi
	case 5 : $NbJour = 0;break; //Vendredi
	case 6 : $NbJour = 6;break; //Samedi
}
$jour=$DateDuJour.getDate();
$mois=$DateDuJour.getMonth()+1;
$annee=$DateDuJour.getFullYear();
$dateResultat=$jour+"/"+$mois+"/"+$annee;
$dateRetour = addDaysToDate($jour+"/"+$mois+"/"+$annee, $NbJour+7);
document.getElementById("DatePromo").innerHTML = "Avant le <BR> "+$dateRetour;
}

function GenerationPidClient() {
	// générer le mot de passe
	// Ensemble des caractères utilisés pour le créer
	var cars="ABCDEFGHJKLMNPQRSTUVWXYZ";
	var cars2="23456789";
	// Combien on en a mis au fait ?
	var $long=cars.length;
	var $long2=cars2.length;
	// Au départ, il est vide ce mot de passe ;)
	wpas="";
	// Combien on veut de caractères pour ce mot de passe ?
	$taille=4;
	$taille2=5;
	// On boucle sur le nombre de caractères voulus
	for(i=0;i<$taille;i++){
	// Tirage aléatoire d'une valeur entre 1 et wlong
	   wpos=Math.round(Math.random()*$long);
	// On cumule le caractère dans le mot de passe
	 wpas+=cars.substring(wpos,wpos+1);
	// On continue avec le caractère suivant à générer 
	}
	wpas+="-";
	for(j=0;j<$taille2;j++){
	// Tirage aléatoire d'une valeur entre 1 et wlong
	   wpos=Math.round(Math.random()*$long2);
	// On cumule le caractère dans le mot de passe
	 wpas+=cars2.substring(wpos,wpos+1);
	// On continue avec le caractère suivant à générer 
	}
	return wpas;
}

function GenerationPidDevis() {
	// générer le mot de passe
	// Ensemble des caractères utilisés pour le créer
	var cars="ABCDEFGHJKLMNPQRSTUVWXYZ";
	var cars2="23456789";
	// Combien on en a mis au fait ?
	var $long=cars.length;
	var $long2=cars2.length;
	// Au départ, il est vide ce mot de passe ;)
	wpas="D";
	// Combien on veut de caractères pour ce mot de passe ?
	$taille=5;
	$taille2=3;
	// On boucle sur le nombre de caractères voulus
	for(i=0;i<$taille;i++){
	// Tirage aléatoire d'une valeur entre 1 et wlong
	   wpos=Math.round(Math.random()*$long2);
	// On cumule le caractère dans le mot de passe
	 wpas+=cars2.substring(wpos,wpos+1);
	// On continue avec le caractère suivant à générer 
	}
	wpas+="-";
	for(j=0;j<$taille2;j++){
	// Tirage aléatoire d'une valeur entre 1 et wlong
	   wpos=Math.round(Math.random()*$long);
	// On cumule le caractère dans le mot de passe
	 wpas+=cars.substring(wpos,wpos+1);
	// On continue avec le caractère suivant à générer 
	}
	return wpas;
}

function GenerationPidContrat() {
	// générer le mot de passe
	// Ensemble des caractères utilisés pour le créer
	var cars="ABCDEFGHJKLMNPQRSTUVWXYZ";
	var cars2="23456789";
	// Combien on en a mis au fait ?
	var $long=cars.length;
	var $long2=cars2.length;
	// Au départ, il est vide ce mot de passe ;)
	wpas="";
	// Combien on veut de caractères pour ce mot de passe ?
	$taille=2;
	$taille2=5;
	$taille3=3;
	// On boucle sur le nombre de caractères voulus
	for(i=0;i<$taille;i++){
	// Tirage aléatoire d'une valeur entre 1 et wlong
	   wpos=Math.round(Math.random()*$long);
	// On cumule le caractère dans le mot de passe
	 wpas+=cars.substring(wpos,wpos+1);
	// On continue avec le caractère suivant à générer 
	}
	for(j=0;j<$taille2;j++){
	// Tirage aléatoire d'une valeur entre 1 et wlong
	   wpos=Math.round(Math.random()*$long2);
	// On cumule le caractère dans le mot de passe
	 wpas+=cars2.substring(wpos,wpos+1);
	// On continue avec le caractère suivant à générer 
	}
	for(k=0;k<$taille3;k++){
	// Tirage aléatoire d'une valeur entre 1 et wlong
	   wpos=Math.round(Math.random()*$long);
	// On cumule le caractère dans le mot de passe
	 wpas+=cars.substring(wpos,wpos+1);
	// On continue avec le caractère suivant à générer 
	}
	return wpas;
}

function chkcompletenumtel(numtel,keycod)
{
	 if(keycod!=8 && keycod!=46 && keycod!=37 && keycod!=39)
	 {
		numteli=document.getElementById(numtel).value;
		numtellen=document.getElementById(numtel).value.length;
		numteltp="";
		for(i=0;i<numtellen;i++)
		{
			if(parseInt(numteli.substring(i,i+1))==numteli.substring(i,i+1) || numteli.substring(i,i+1)!="-" || numteli.substring(i,i+1)!=" ")
			{
				numteltp+=numteli.substring(i,i+1);
			}
		}
		document.getElementById(numtel).value=numteltp.substring(0,14);
		numteli=document.getElementById(numtel).value;
		numtellen=document.getElementById(numtel).value.length;
		numteltp="";
		for(i=0;i<numtellen;i++)
		{
			if(parseInt(numteli.substring(i,i+1))==numteli.substring(i,i+1))
			{
				numteltp+=numteli.substring(i,i+1);
				if(numteltp.length==2 || numteltp.length==5 || numteltp.length==8 || numteltp.length==11)
				{
					numteltp+="-";
				}
			}		
		}
		document.getElementById(numtel).value=numteltp.substring(0,14);
	}
}
function isDateValid(chaineDate) {

// Je regarde tout d'abord si la chaîne n'est pas vide, sinon pas la peine d'aller plus loin
   if (chaineDate != "") return false

// J'utilise split pour créer un tableau dans lequel je récupère les jour mois année
// J'attends bien sûr une date formatée en JJ/MM/AAAA
   var ladate = (chaineDate).split("/")

// Si je n'ai pas récupéré trois éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
   if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) return false

// Sinon, c'est maintenant que je crée la date correspondante. Attention, les mois sont étalonnés de 0 à 11
   var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]))

// Bug de l'an 2000 oblige, lorsque je récupère l'année, je n'ai pas toujours 4 chiffres selon les navigateurs, je rectifie donc ici le tir.
   var annee = unedate.getYear()
   if ((Math.abs(annee)+"").length < 4) annee = annee + 1900

// Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
   return ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2])))
}
function checkEmail(emailAddr) {
	// Cette fonction vérifie la bon format d'une adresse e-mail.
	// Comme :
	// user@domain.com ou user.perso@domain.com
	
	emailAddr=emailAddr.toLowerCase();
	//document.getElementById("emailnonsess").value=emailAddr;
	var i;
	
	// Recherche de @
	i = emailAddr.indexOf("@");
	if (i == -1) {
		return false;
	}
	
	// Séparation du nom de l'utilisateur et du nom de domaine.
	var username = emailAddr.substring(0, i);
	var domain = emailAddr.substring(i + 1, emailAddr.length)

	// Recherche des espaces au début du nom de l'utilisateur.
	i = 0;
	while ((username.substring(i, i + 1) == " ") && (i < username.length)) {
		i++;
	}
	// Les enlève s'il en trouve.
	if (i > 0) {
		username = username.substring(i, username.length);
	}

	// Recherche d'espaces à la fin du nom de domaine.
	i = domain.length - 1;
	while ((domain.substring(i, i + 1) == " ") && (i >= 0)) {
		i--;
	}
	// Les enlève s'il en trouve.
	if (i < (domain.length - 1)) {
		domain = domain.substring(0, i + 1);
	}

	// Vérifie que le nom de l'utilisateur et du domaine ne soit pas vide.
	if ((username == "") || (domain == "")) {
		return false;
	}
	
	// Vérifie s'il n'y a pas de caractères interdits dans le nom de l'utilisateur.
	var ch;
	for (i = 0; i < username.length; i++) {
		ch = (username.substring(i, i + 1)).toLowerCase();
		if (!(((ch >= "a") && (ch <= "z")) || 
			((ch >= "0") && (ch <= "9")) ||
			(ch == "_") || (ch == "-") || (ch == "."))) {
				return false;
		}
	}
	
	// Vérifie s'il n'y a pas de caractères interdits dans le nom de domaine
	for (i = 0; i < domain.length; i++) {
		ch = (domain.substring(i, i + 1)).toLowerCase();
		if (!(((ch >= "a") && (ch <= "z")) || 
			((ch >= "0") && (ch <= "9")) ||
			(ch == "_") || (ch == "-") || (ch == "."))) {
				return false;
		}
	}

// Ajouter ci-dessous de nouveaux noms de domaine.
// Voir tous les noms de domaine sur http://www.toulouse-renaissance.net/c_outils/c-nom-domaine.htm
//
var aSuffix = new Array("com","net","int","aero","biz","museum","name","info","coop","pro","eu","edu","org","gov","mil","bj","dz","de","ad","be","ca","bf","bi","cm","cf","cg","cd","ci","dj","fr","ga","gp","gf","lu","mg","ml","ma","mq","mr","mc","nc","pf","re","pm","sn","ch","td","tf","tn");
	var bFoundSuffix = false;
	i = 0;
	while (i < aSuffix.length) {
		if (("." + aSuffix[i]) == domain.substring(domain.length - aSuffix[i].length - 1, domain.length)) {
			return true;
		}
		i++;
	}
	// Si le nom de domaine est inconnu  : return false
	return false;
}	
	

function emailOK(emailAddr) {
	if (!(checkEmail(emailAddr))) {
		alert("Merci de vérifier votre adresse e-mail. Elle n\'est pas dans le bon format.");
	}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function Verifier_Numero_Telephone(num_tel)
{
while(num_tel.indexOf("-")>-1)
{
	num_tel=num_tel.replace("-","");
}
// Definition du motif a matcher
var regex = new RegExp(/^(01|02|03|04|05|06|07|08|09)[0-9]{8}/gi);
// Definition de la variable booleene match
var match = true; // true = pas d'erreur
if(num_tel=="0102030405") {match = false; return match;}
if(num_tel=="0123456789") {match = false; return match;}
if(num_tel=="0101010101") {match = false; return match;}
if(num_tel=="0202020202") {match = false; return match;}
if(num_tel=="0303030303") {match = false; return match;}
if(num_tel=="0404040404") {match = false; return match;}
if(num_tel=="0505050505") {match = false; return match;}
if(num_tel=="0606060606") {match = false; return match;}
if(num_tel=="0707070707") {match = false; return match;}
if(num_tel=="0808080808") {match = false; return match;}
if(num_tel=="0909090909") {match = false; return match;}
if(num_tel=="0100000000") {match = false; return match;}
if(num_tel=="0200000000") {match = false; return match;}
if(num_tel=="0300000000") {match = false; return match;}
if(num_tel=="0400000000") {match = false; return match;}
if(num_tel=="0500000000") {match = false; return match;}
if(num_tel=="0600000000") {match = false; return match;}
if(num_tel=="0700000000") {match = false; return match;}
if(num_tel=="0800000000") {match = false; return match;}
if(num_tel=="0900000000") {match = false; return match;}
if(num_tel=="0111111111") {match = false; return match;}
if(num_tel=="0222222222") {match = false; return match;}
if(num_tel=="0333333333") {match = false; return match;}
if(num_tel=="0444444444") {match = false; return match;}
if(num_tel=="0555555555") {match = false; return match;}
if(num_tel=="0666666666") {match = false; return match;}
if(num_tel=="0777777777") {match = false; return match;}
if(num_tel=="0888888888") {match = false; return match;}
if(num_tel=="0999999999") {match = false; return match;}
if(num_tel=="0100000001") {match = false; return match;}
if(num_tel=="0201020102") {match = false; return match;}
if(num_tel=="0699999999") {match = false; return match;}
if(num_tel=="0123457890") {match = false; return match;}
if(num_tel=="0100010001") {match = false; return match;}
// Test sur le motif
if(regex.test(num_tel)) {match = true;} else {match = false;}
// On renvoie match
return match;
} 
function Verifier_Numero_SS(num_ss)
{
// Definition du motif a matcher
var regex = new RegExp(/^[a-z0-9]{13}/gi);
// Definition de la variable booleene match
var match = false;
// Test sur le motif
if(regex.test(num_ss))
{
match = true;
}
else
{
match = false;
}
// On renvoie match
return match;
}


function verifNumSecu(NumSecu)
{	str = new String(NumSecu);
    re = /^\s*(\d)\s*[-.]?\s*(\d\d)\s*[-.]?\s*(\d\d)\s*[-.]?\s*(\d\d)\s*[-.]?\s*(\d\d\d)\s*[-.]?\s*(\d\d\d)\s*$/;
    if ( ! re.test(str) ) {
        keyField = "F";
        return keyField;
    }
    NumSecu = str.replace(re,"$1 $2 $3 $4 $5 $6");
    num = new Number(str.replace(re,"$1$2$3$4$5$6"));
    key = 97-(num%97);	
    // Has ECMAScript no sprintf function?
    keyField = key.toString().replace(/^(\d)$/,"0$1");
	//alert("Assistance N° secu : "+keyField);//pour les tests
	return keyField;
}


function Verifier_Cle_SS(cle_ss)
{
// Definition du motif a matcher
var regex = new RegExp(/^[0-9]{2}/gi);
// Definition de la variable booleene match
var match = false;
// Test sur le motif
if(regex.test(cle_ss))
{
match = true;
}
else
{
match = false;
}
// On renvoie match
return match;
}
function Verifier_Cp(cp)
{
// Definition du motif a matcher
var regex = new RegExp(/^[0-9]{5}/gi);
// Definition de la variable booleene match
var match = false;
// Test sur le motif
if(regex.test(cp))
{
match = true;
}
else
{
match = false;
}
// On renvoie match
return match;
}
function Verifier_CCp(cp)
{
// Definition du motif a matcher
var regex = new RegExp(/^[0-9]{3}/gi);
// Definition de la variable booleene match
var match = false;
// Test sur le motif
if(regex.test(cp))
{
match = true;
}
else
{
match = false;
}
// On renvoie match
return match;
} 
function Verifier_Codeetab(code)
{
// Definition du motif a matcher
var regex = new RegExp(/^[0-9]{5}/gi);
// Definition de la variable booleene match
var match = false;
// Test sur le motif
if(regex.test(code))
{
match = true;
}
else
{
match = false;
}
// On renvoie match
return match;
}
function Verifier_Codeguich(code)
{
// Definition du motif a matcher
var regex = new RegExp(/^[0-9]{5}/gi);
// Definition de la variable booleene match
var match = false;
// Test sur le motif
if(regex.test(code))
{
match = true;
}
else
{
match = false;
}
// On renvoie match
return match;
}
function isRIBvalid(arguments)
{
	if (arguments.length>=3)
		{
		var bqe=arguments[0];
		var gui=arguments[1];
		var cpt=arguments[2].toUpperCase();
		var tab= "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		var tab1="123456789123456789234567890123456789".split("");
		while (cpt.match(/\D/) != null)
			cpt=cpt.replace(/\D/, tab1[tab.indexOf(cpt.match(/\D/))]);
		var cp=parseInt(cpt, 10);
		
		a=bqe%97;
		a=a*100000+parseInt(gui, 10);
		a=a%97;
		a=a*Math.pow(10, 11) + cp;
		a=a%97
		a=a*100;
		a=a%97
		a=97-a;
		if (arguments.length>3)
		{
			if(arguments[3]!=a)
			{	//alert("Assistance RIB : "+a);
				return a;
			}
		}
		else
			{return a;
			//alert("Assistance RIB : "+a);
			}
		}
	else
		{//alert("Assistance RIB : "+a);
		return a;
		}
}