function nextKey(it,field)
{
	if (it.value.length==2) document.getElementById(field).focus();
}

function realDate(x)
{
	if (x.toString().length<2) x = "0"+x.toString();
	return x;
}

function CheckDate(j,m,a,d,dm)
{
	// Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
	// Le séparateur est défini dans la variable separateur
	var od=new Date();
	var amin=0; // année mini
	var amax=od.getFullYear(); // année maxi
	var ok=1;
	var d2=new Date(a,m-1,j);
	j2=d2.getDate();
	m2=d2.getMonth()+1;
	a2=d2.getFullYear();
	if ( (j!=j2) || (m!=m2) || (a!=a2) || (a>amax) || (a<=amin) )
	{
		alert("La date "+j+"/"+m+"/"+a+" n'existe pas !");
		ok=0;
	}
	var d3=new Date();
	j3=realDate(d3.getDate());
	m3=realDate(d3.getMonth()+1);
	a3=d3.getFullYear();
	j=realDate(j);
	m=realDate(m);
	birthdate=a3+"/"+m3+"/"+j3;

	var AgeMax = eval(eval(a)+dm+1)+"/"+m+"/"+j;
   var AgeMin = eval(eval(a)+d)+"/"+m+"/"+j;
   if (birthdate<AgeMin || birthdate>=AgeMax)
	{
       alert("Le livret Jeune est réservé aux jeunes agés de "+d+" à "+dm+" ans.");
       ok=0;
    }

	return ok;
}

function CheckMineur(j,m,a)
{
	// Cette fonction vérifie si l'âge de la personne à la date t est < 18.
	// Le séparateur est défini dans la variable separateur
	var od=new Date();
	var amin=0; // année mini
	var amax=od.getFullYear(); // année maxi
	var ok=1;
	var d2=new Date(a,m-1,j);
	j2=d2.getDate();
	m2=d2.getMonth()+1;
	a2=d2.getFullYear();

	var d3=new Date();
	j3=realDate(d3.getDate());
	m3=realDate(d3.getMonth()+1);
	a3=d3.getFullYear();
	j=realDate(j);
	m=realDate(m);
	birthdate=a3+"/"+m3+"/"+j3;

	var AgeMin = eval(eval(a)+18)+"/"+m+"/"+j;

   if (birthdate<AgeMin)
	{
       ok=0;
    }

	return ok;
}

function CheckMajeur(j,m,a)
{
	// Cette fonction vérifie si l'âge de la personne à la date t est < 18.
	// Le séparateur est défini dans la variable separateur
	var od=new Date();
	var amin=0; // année mini
	var amax=od.getFullYear(); // année maxi
	var ok=1;
	var d2=new Date(a,m-1,j);
	j2=d2.getDate();
	m2=d2.getMonth()+1;
	a2=d2.getFullYear();

	var d3=new Date();
	j3=realDate(d3.getDate());
	m3=realDate(d3.getMonth()+1);
	a3=d3.getFullYear();
	j=realDate(j);
	m=realDate(m);
	birthdate=a3+"/"+m3+"/"+j3;

	var AgeMin = eval(eval(a)+18)+"/"+m+"/"+j;

   if (birthdate>AgeMin)
	{
       ok=0;
    }

	return ok;
}

function Fold(obj)
{
//	if (arguments[1]=='block') arguments[1]='';
	if (document.getElementById)
	{
		if (document.getElementById(obj))
		{
			if (arguments[1])  document.getElementById(obj).style.display=arguments[1];
			else
			{
				if (document.getElementById(obj).style.display == 'none')  document.getElementById(obj).style.display='';
				else document.getElementById(obj).style.display='none';
			}
		}
	}
	else if (document.all[obj])
	{
		if (arguments[1])  document.all[obj].style.display=arguments[1];
		else
		{
			if (document.all[obj].style.display == 'none') document.all[obj].style.display="";
			else document.all[obj].style.display='none';
		}
	}
}

function ouvre_popup()
{
  var x=window.open(arguments[0],arguments[1],arguments[2]);
}

function checkStatut(it)
{
Fold("assur","none");
	switch (it.options[it.selectedIndex].value)
	{
		case "1" : // Marié, régime de communauté
			Fold("coemp","none");
			Fold("isCoemp","");
			document.getElementById("libCoEmp").innerHTML="conjoint";
			document.getElementById("libCoEmp2").innerHTML="conjoint";
			document.getElementById("libCoEmp3").innerHTML="conjoint";
			Fold("isClient","none");
			Fold("isNotClient1","none");
			Fold("isNotClient2","none");
			Fold("isNotClient3","none");
			Fold("isNotClient4","none");
			Fold("spco","");
			Fold("spcocli11","");
			Fold("spcocli12","");
			
			if (a==1)
				Fold("assur","");
			else
				Fold("assur","none");
		break;

		case "2" : // Pacsé
			Fold("coemp","");
			Fold("isCoemp","none");
			document.getElementById("libCoEmp").innerHTML="concubin";
			document.getElementById("libCoEmp2").innerHTML="concubin";
			document.getElementById("libCoEmp3").innerHTML="concubin";
			Fold("isClient","none");
			Fold("isNotClient1","none");
			Fold("isNotClient2","none");
			Fold("isNotClient3","none");
			Fold("isNotClient4","none");
			Fold("spco","none");
			Fold("spcocli11","none");
			Fold("spcocli12","none");
			
			if (a==1)
				Fold("assur","");
			else
				Fold("assur","none");
		break;

		case "3" : // Autres
			Fold("coemp","none");
			Fold("isCoemp","none");
			Fold("isClient","none");
			Fold("isNotClient1","none");
			Fold("isNotClient2","none");
			Fold("isNotClient3","none");
			Fold("isNotClient4","none");
			Fold("spco","none");
			Fold("spcocli11","none");
			Fold("spcocli12","none");
		break;

		case "4" : // Marié, régime de séparation
			Fold("coemp","");
			Fold("isCoemp","none");
			document.getElementById("libCoEmp").innerHTML="conjoint";
			document.getElementById("libCoEmp2").innerHTML="conjoint";
			document.getElementById("libCoEmp3").innerHTML="conjoint";
			Fold("isClient","none");
			Fold("isNotClient1","none");
			Fold("isNotClient2","none");
			Fold("isNotClient3","none");
			Fold("isNotClient4","none");
			Fold("spco","none");
			Fold("spcocli11","none");
			Fold("spcocli12","none");
			
			if (a==1)
				Fold("assur","");
			else
				Fold("assur","none");
		break;
		
		default:
			Fold("coemp","none");
			Fold("isCoemp","none");
			document.getElementById("libCoEmp").innerHTML="";
			document.getElementById("libCoEmp2").innerHTML="";
			document.getElementById("libCoEmp3").innerHTML="";
			Fold("isClient","none");
			Fold("isNotClient1","none");
			Fold("isNotClient2","none");
			Fold("isNotClient3","none");
			Fold("isNotClient4","none");
			Fold("spco","none");
			Fold("spcocli11","none");
			Fold("spcocli12","none");
		break;
	}

}

function isCoemp(val)
{
	if (val==true)
	{
		 Fold("isCoemp",""); Fold("isClient","none"); Fold("isNotClient1","none"); Fold("isNotClient2","none");
		 Fold("isNotClient3","none"); Fold("isNotClient4","none"); Fold("spco","");

	}
	else
	{
		 Fold("isCoemp","none"); Fold("isClient","none"); Fold("isNotClient1","none"); Fold("isNotClient2","none");
		 Fold("isNotClient3","none"); Fold("isNotClient4","none"); Fold("spco","none");
	}
}

function checkCiv ()
{
	var d = document.formulaire;

	if (d.genreCO[1].checked==true)
	{
		Fold("nomJF",""); Fold("spjf1",""); Fold("spjf2","");
	} else {
		Fold("nomJF","none"); Fold("spjf1","none"); Fold("spjf2","none");
	}
}

function isClient (value)
{
	if (value==true)
	{
		 Fold("isClient",""); Fold("isNotClient1","none"); Fold("isNotClient2","none"); Fold("isNotClient3","none"); Fold("isNotClient4","none"); Fold("spcocli1",""); Fold("spcocli2","");
		 Fold("spcocli3","none"); Fold("spcocli4","none"); Fold("spcocli5","none"); Fold("spcocli6","none"); Fold("spcocli7","none"); Fold("spcocli8","none"); Fold("spcocli9","none"); Fold("spcocli10","none");
	}
	else
	{
		 Fold("isClient","none"); Fold("isNotClient1",""); Fold("isNotClient2",""); Fold("isNotClient3",""); Fold("isNotClient4",""); Fold("spcocli1","none"); Fold("spcocli2","none"); Fold("spcocli3","");
		 Fold("spcocli4",""); Fold("spcocli5",""); Fold("spcocli6",""); Fold("spcocli7",""); Fold("spcocli8",""); Fold("spcocli9",""); Fold("spcocli10","");
	}
}

function die(champ,msg)
{
	eval("document.formulaire."+champ+".focus();");
	alert(msg);
	return false;
}

function CheckNombre(nb)
{
	// retourne vrai si c'est un nombre et false sinon
	return !(isNaN(nb));
}

function check()
{
	var d = document.formulaire;
	var a = document.getElementById("a").value;
	switch (onglet)
	{
		case 1 :

			return true;
		break;

		case 2 :

			return true;
		break;

		case 3:
			// Civilité
			if (d.civilite[0].checked==false && d.civilite[1].checked==false && d.civilite[2].checked==false) return die("civilite[0]","Veuillez préciser votre civilité.");

			// Nom
			if (d.nom.value.length<1) return die("nom","Veuillez saisir votre nom.");

			// Prénom
			if (d.prenom.value.length<1) return die("prenom","Veuillez saisir votre prénom.");
			// adresse
			if (d.adresse.value.length<1) return die("adresse","Veuillez saisir votre adresse.");
			// cp
			if (d.cp.value.length<1) return die("cp","Veuillez saisir votre code postal.");
			// ville
			if (d.ville.value.length<1) return die("ville","Veuillez saisir votre ville.");

			// Date de naissance
			if (d.naissancejour_tit.value+''+d.naissancemois_tit.value+''+d.naissancean_tit.value == "" ) return die("naissancejour_tit","Veuillez saisir la date de naissance.");
			if (!isDate(d.naissancejour_tit.value+'/'+d.naissancemois_tit.value+'/'+d.naissancean_tit.value)) return die("naissancejour_tit","La date de naissance saisie est invalide.");

			// Sitrep
			if (d.sitrep.selectedIndex==0) return die("sitrep", "Veuillez préciser votre situation familiale.");

			// Email
			if (d.email.value.length > 0)
			{
				if ((d.email.value.length > 0) && (! (d.email.value.indexOf("@") >=0 )) ||
				(! (d.email.value.indexOf(".") >=0 )) || (d.email.value.lastIndexOf(".") == d.email.value.length -1) ||
				(d.email.value.lastIndexOf(".") < d.email.value.lastIndexOf("@")))
				return die("email","L'adresse courriel saisie n'est pas valide (entrez une adresse au format xxx@xxx.xx)")
			}	else {
				return die("email","Veuillez saisir votre E-mail.");
			}

			// Téléphone
			if (d.tel.value.length<1) return die("tel","Veuillez saisir votre téléphone.");

			// Compte
			if (d.compte.value.length < 11) return die("compte","Le numéro du compte à créditer est incorrect.");

			// Conjoint, concubin
			if (d.sitrep.selectedIndex==2 && (d.isCoop[0].checked!=true && d.isCoop[1].checked!=true)) return die("isCoop[0]", "Veuillez précisez si votre conjoint est co-emprunteur.");
			if (d.sitrep.selectedIndex==3 && (d.isCoop[0].checked!=true && d.isCoop[1].checked!=true)) return die("isCoop[0]", "Veuillez précisez si votre concubin est co-emprunteur.");

			//Cas CO-emp
			if (d.sitrep.selectedIndex==1 || (d.sitrep.selectedIndex==2 && d.isCoop[0].checked==true) || (d.sitrep.selectedIndex==3 && d.isCoop[0].checked==true))
			{
			  var nM = (d.sitrep.selectedIndex==1 || d.sitrep.selectedIndex==2)?"conjoint":"concubin";
			  // Genre
			  if (d.genreCO[0].checked==false && d.genreCO[1].checked==false && d.genreCO[2].checked==false) return die("genreCO","La civilité de votre "+nM+" est obligatoire.");
			  
			  // Nom
			  if (d.nomCO.value.length < 2) return die("nomCO","Veuillez entrer le nom de votre "+nM+".");
			  
			  // Prenom
			  if (d.prenomCO.value.length < 2) return die("prenomCO","Veuillez entrer le prénom de votre "+nM+".");

			  //Client ??
			  if (d.coC[0].checked==false && d.coC[1].checked==false) return die("coC[0]","Veuillez préciser si votre "+nM+" est client à la BPVF.");
			  if (d.coC[0].checked==true)
			  {
				 if (d.compteCO.value.length < 11) return die("compteCO","Le numéro de compte de votre "+nM+" est incorrect.");
			  }
			  else if (d.coC[1].checked==true)
			  {
				 //Birth

				if (d.naissancejour_co.value+''+d.naissancemois_co.value+''+d.naissancean_co.value == "" ) return die("naissancejour_co","Veuillez saisir la date de naissance.");
				if (!isDate(d.naissancejour_co.value+'/'+d.naissancemois_co.value+'/'+d.naissancean_co.value)) return die("naissancejour_co","La date de naissance saisie est invalide.");

				 if (d.lieuCO.value.length <2) return die("lieuCO","Veuillez entrer le lieu de naissance de votre "+nM+".");
				 if (d.deptCO.value.length <2) return die("deptCO","Veuillez entrer le département de naissance de votre "+nM+".");
				 if (d.paysCO.value.length <2) return die("paysCO","Veuillez entrer le pays de naissance de votre "+nM+".");
			  }

			  // Assurance
			  if (a==1 && d.coemprunt.selectedIndex==0) return die("coemprunt","Veuillez remplir la partie 'Assurance'.");
			}

			return true;
		break;

		case 4 :


			return true;
		break;
	}
}

function next()
{
	var d = document.formulaire;

	var vp = parseInt(d.p.value);
	var vd = parseInt(d.d.value);
	var va = parseInt(d.a.value);
	
	//changement de couleur des conditions généraes et autres
	if(d.type_pret[0].checked == true)
	{
	document.getElementById("doc_aff").style.color='red';
	document.getElementById("doc_per").style.color='#004292';
	
	document.getElementById("txt_type").innerHTML='prêt affecté';
	}
	
	if(d.type_pret[1].checked == true)
	{
	document.getElementById("doc_per").style.color='red';
	document.getElementById("doc_aff").style.color='#004292';
	
	document.getElementById("txt_type").innerHTML='prêt personnel';
	}
	
	

	if (check())
	{
		document.getElementById("onglet_"+onglet).style.display='none';
		document.getElementById("onglet_"+(onglet+1)).style.display='';
		onglet++;
		document.getElementById('btn_prev').style.display='';
		document.getElementById('btn_suite').style.display='';

		if (onglet == step-1)
		{
			document.getElementById('btn_suite').style.display='none'; // On masque le bouton "suite"
			document.getElementById('btn_validation').style.display=''; // On affiche le bouton "Valider"

			// Génération des champs de l'onglet Contrat (reprise de tous les input du formulaire)
			var x = document.formulaire.getElementsByTagName('input');
			var nodeLength = x.length;
			for (var i=0; i<nodeLength; i++)
			{
				var nom = x[i].name;
				var valeur = x[i].value;
				if ((nom!='isCoop') && (nom!='coC') && (nom!='ass1') && (nom!='ass0'))
				document.getElementById("sp_"+nom).innerHTML=valeur;
			}

			if (vp==1) document.getElementById("sp_p").innerHTML="3000";
			if (vp==2) document.getElementById("sp_p").innerHTML="5000";
			if (vp==3) document.getElementById("sp_p").innerHTML="7000";
			if (vp==4) document.getElementById("sp_p").innerHTML="10000";
			if (vp==5) document.getElementById("sp_p").innerHTML="12000";
			if (vp==6) document.getElementById("sp_p").innerHTML="15000";

			if (vd==1) document.getElementById("sp_d").innerHTML="12";
			if (vd==2) document.getElementById("sp_d").innerHTML="24";
			if (vd==3) document.getElementById("sp_d").innerHTML="36";
			if (vd==4) document.getElementById("sp_d").innerHTML="48";
			if (vd==5) document.getElementById("sp_d").innerHTML="60";

			if (va==0) document.getElementById("sp_a").innerHTML="non";
			if (va==1) document.getElementById("sp_a").innerHTML="oui";

			// Réinjection des bonnes valeurs dans les champs de récap
			if (d.civilite[0].checked==true) document.getElementById("sp_civilite").innerHTML="Monsieur";
			if (d.civilite[1].checked==true) document.getElementById("sp_civilite").innerHTML="Madame";
			if (d.civilite[2].checked==true) document.getElementById("sp_civilite").innerHTML="Mademoiselle";
			if (d.genreCO[0].checked==true) document.getElementById("sp_genreCO").innerHTML="Monsieur";
			if (d.genreCO[1].checked==true) document.getElementById("sp_genreCO").innerHTML="Madame";
			if (d.genreCO[2].checked==true) document.getElementById("sp_genreCO").innerHTML="Mademoiselle";

			// Génération des champs de l'onglet Contrat (reprise de tous les select du formulaire)
			var x = document.formulaire.getElementsByTagName('select');
			var nodeLength = x.length;
			for (var i=0; i<nodeLength; i++)
			{
				var nom = x[i].name;
				var valeur = x[i].options[x[i].selectedIndex].value;
				if (nom!='sitrep') document.getElementById("sp_"+nom).innerHTML=valeur;
			}

			if (document.getElementById("coemprunt").value=='100')
				document.getElementById("sp_coemprunt").innerHTML="Assurance 100% emprunteur";
			else
			{
				if (document.getElementById("coemprunt").value=='50')
					document.getElementById("sp_coemprunt").innerHTML="Assurance 50% emprunteur - 50% co-emprunteur";
				else
					document.getElementById("sp_coemprunt").innerHTML="non";
			}
			
			// Génération des champs de l'onglet Contrat (cas particuliers)
			var x = document.formulaire.getElementsByTagName('textarea');
			var nodeLength = x.length;
			for (var i=0; i<nodeLength; i++)
			{
				var nom = x[i].name;
				var valeur = x[i].value;
				document.getElementById("sp_"+nom).innerHTML=valeur;
			}
		}

	}
}

function previous()
{
	//document.getElementById('btn_fermer').style.display='none';
	document.getElementById("onglet_"+onglet).style.display='none';
   document.getElementById("onglet_"+(onglet-1)).style.display='';
	document.getElementById('btn_validation').style.display='none'; // On masque le bouton "Valider"
	document.getElementById('btn_suite').style.display=''; // On affiche le bouton Suite
	onglet--;

		if (onglet == 1)
		{
			document.getElementById('btn_prev').style.display='none'; // On masque le bouton "précédent"
			document.getElementById('btn_suite').style.display='none'; // On masque le bouton "suite"
		}

}

function valider()
{
	if (check())
	{
		document.getElementById("onglet_"+onglet).style.display='none';
		document.getElementById("onglet_contrat").style.display=''; // On affiche l'onglet contrat
		document.getElementById('btn_prev').style.display='none';
		document.getElementById('btn_validation').style.display='none';
		document.getElementById('btn_fin').style.display='';

		document.formulaire.submit();
	}
}

function end()
{
/*	for (var i=1;i<step+1;i++)
	{
		document.getElementById("onglet_"+i).style.display='none'; // On masque les 4 premiers onglets
	}
	document.getElementById("or_"+step).style.display='none'; // On masque l'icône contrat orange
	document.getElementById("bl_"+step).style.display=''; // On affiche l'icône contrat bleu
	document.getElementById("onglet_contrat").style.display='none'; // On masque l'onglet contrat avec l'iframe
	document.getElementById("onglet_fin").style.display=''; // On affiche l'onglet de fin
	document.getElementById('text_contrat').style.display='none'; // On masque le texte du contrat
	document.getElementById('text_print').style.display='none'; // On masque le texte d'impression cu contrat
	document.getElementById('btn_end').style.display='none'; // On masque le bouton "Terminer"
	document.getElementById('text_close').style.display=''; // On affiche le texte de fin
	document.getElementById('btn_fermer').style.display=''; // On affiche le bouton "Terminer"*/

	document.getElementById("contrat_affiche").style.display='none' ;
	document.getElementById("iframe").style.display='none' ;
	document.getElementById("remerciement").style.display='' ;
	document.getElementById("btn_fin").style.display='none' ;
}

function print()
{
	for (var i=1;i<step+1;i++)
	{
		document.getElementById("onglet_"+i).style.display='none'; // On masque tous les onglets sauf l'iframe
	}
	document.getElementById("onglet_contrat").style.display=''; // On affiche l'onglet contrat
	document.getElementById("onglet_fin").style.display='none'; // On masque l'onglet de fin
	document.getElementById('text_contrat').style.display='none'; // On masque le texte du contrat
	document.getElementById('text_print').style.display=''; // On affiche le texte d'impression du contrat
	document.getElementById('btn_end').style.display=''; // On affiche le bouton "Terminer"
	document.getElementById('iframe').style.display='';
	document.formulaire.hasPrinter.value="yes";
	document.formulaire.submit();
}

function ouvrir(fichier)
{
	var b=window.open("http://www.bp-secure.com/bpo/souscriptions/"+fichier+".pdf", "", "height=680, width=800");
}






/*********************************************************
* DATES FONCTIONS
**********************************************************/



function enhanceDate(input) {
	try {
		var tmp = input.value;
		var len = tmp.length;
		var dat = "";
		var sep = 0;
		var abc = 0;

		if (verboseDate(input) == -1) {
			for (var i = 0; i < tmp.length; i++) {
				var c = tmp.substr(i, 1);
				if (c == "/") {
					sep++;
					dat += "/";
				} else if (c == "-") {
					sep++;
					dat += "/";
				} else if (c == ".") {
					sep++;
					dat += "/";
				} else if (c == " ") {
					sep++;
					dat += "/";
				} else if (c < "0") {
					abc++;
				} else if (c > "9") {
					abc++;
				} else {
					dat += c;
				}
			}
			if (abc == 0) {
				len = dat.length;
				var year = new Date().getFullYear();
				var month = new Date().getMonth()+1;
				if (month < 10) month = "0"+month;
				if ((len == 2) && (sep == 0)) {
				// Suppose DD
					dat = dat.substr(0, 2) + "/" + month + "/" + year.toString();
				}else if ((len == 4) && (sep == 0)) {
					// Suppose DDMM
					dat = dat.substr(0, 2) + "/" + dat.substr(2, 2) + "/" + year.toString();
				} else if ((len == 5) && (sep == 1)) {
					// Suppose DD/MM
					dat = dat.substr(0, 5) + "/" + year.toString();
				} else if ((len == 6) && (sep == 0)) {
					// Suppose DDMMYY
					if (dat.substr(4, 2) >= "20") {
						year = year - 100;
					}
					dat = dat.substr(0, 2) + "/" + dat.substr(2, 2) + "/" + year.toString().substr(0, 2) + dat.substr(4, 2);
				} else if ((len == 8) && (sep == 2)) {
					// Suppose DD/MM/YY
					if (dat.substr(6, 2) >= "20") {
						year = year - 100;
					}
					dat = dat.substr(0, 6) + year.toString().substr(0, 2) + dat.substr(6, 2);
				} else if ((len == 8) && (sep == 0)) {
					// Suppose DDMMCCYY
					dat = dat.substr(0, 2) + "/" + dat.substr(2, 2) + "/" + dat.substr(4, 4);
				}
				input.value = dat;
			}
		}
	}
	catch (e) {}
	if ( !isDate(input.value)){
 		input.value ="";
	}
}

function verboseDate(input) {
	var tmp = input.value.toLowerCase();
	var ret = 0;

	if (tmp.indexOf("dem") != -1) {
		input.value = formatDate(addDay(new Date(),1));
	} else if (tmp.indexOf("hier") != -1) {
		input.value = formatDate(addDay(new Date(),-1));
	} else if (tmp.indexOf("auj") != -1) {
		input.value = formatDate(new Date());
	} else {
		var re = new RegExp("(dim|lun|mar|mer|jeu|ven|sam)([a-z]{0,})($|\\+{1,3}|-{1,3})");
		var rs = re.exec(tmp);

		if (rs != null) {
			var dt = new Date();
			var day = -1;

			switch(rs[1].substr(0,3)) {
				case "lun": day = 1; break;
				case "mar": day = 2; break;
				case "mer": day = 3; break;
				case "jeu": day = 4; break;
				case "ven": day = 5; break;
				case "sam": day = 6; break;
				case "dim": day = 7; break;
			}
			if(rs[3].indexOf("+") != -1) {
				day = day + 7 * rs[3].length;
			} else if (rs[3].indexOf("-") != -1) {
				day = day - 7 * rs[3].length;
			}
			input.value = formatDate(addDay(dt, day - dt.getDay()));
		} else {
			ret = -1;
		}
	}
	return ret;
}

function formatDate(obj) {
  var dt = leftPad(obj.getDate().toString(), 2, "0");
	dt += "/" + leftPad((obj.getMonth()+1).toString(), 2, "0");
  dt += "/" + obj.getFullYear().toString();
	return dt;
}

function addDay(objDate, jour) {
	objDate.setTime(objDate.getTime() + (jour * 86400000));
	return objDate;
}

function leftPad(str, len, car) {
	while(str.length < len) {
		str = car + str;
	}
	return str;
}


function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   }
   return this
}
function jourparmois(mois,an) {
	// mois de 0 à 11
	var tabjour = new Array();
	tabjour[0] = 31;
	tabjour[1] = 28;
	tabjour[2] = 31;
	tabjour[3] = 30;
	tabjour[4] = 31;
	tabjour[5] = 30;
	tabjour[6] = 31;
	tabjour[7] = 31;
	tabjour[9] = 30;
	tabjour[10] = 31;
	tabjour[11] = 30;
	tabjour[12] = 31;

	jj = (mois+1);
	if (mois == 1){
		jj = daysInFebruary(year);
	}else{
		jj = tabjour[mois];
	}
   return jj;
}


function isDate(dtStr){

var dtCh= "/";
var minYear=1900;
var maxYear=2100;
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
	//	alert("The date format should be : dd/mm/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
	//	alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
	//	alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
	//	alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
	//	alert("Please enter a valid date")
		return false
	}
return true
}



