// <![CDATA[
var FTP="/gfm/10084/m";

//********************* POPUP ************************//
var newWin = null;
function closeWin(){
if (newWin != null){
if(!newWin.closed)
newWin.close();
}
}
function popUp(strURL,strType,strHeight,strWidth) {
closeWin();
var strOptions="";
if (strType=="console") strOptions="resizable,height="+strHeight+",width="+strWidth;
if (strType=="fixed") strOptions="scrollbars,status,height="+strHeight+",width="+strWidth;
if (strType=="elastic") strOptions="toolbar,menubar,scrollbars,resizable,location,height="+strHeight+",width="+strWidth;
newWin = window.open(strURL, 'newWin', strOptions);
newWin.focus();
}
//********************* FIN POPUP ************************//

function Display (id)
{ 

if(document.getElementById(id).style.display == 'block')
	document.getElementById(id).style.display = 'none';
else
	document.getElementById(id).style.display = 'block'


}

var ProductsToCompare = Array();

function ClickProduct (ProductRef)
{
   var found = false;
   for (var i = 0; i < ProductsToCompare.length; i++) {
      if (ProductRef == ProductsToCompare[i]) {
         ProductsToCompare.splice (i, 1);   // delete this product
         return true;
      }
   }

   if (ProductsToCompare.length >= 3) {
      alert ('Vous pouvez choisir seulement 2 ou 3 offres à comparer.');
      return false;
   }

   // add product
   ProductsToCompare.push (ProductRef)
   
   return true
}


function ViewCompIntra (offre,company)
{
	document.getElementById('SR_COMPARE').SELECTED_PRODUCTS.value = offre;
	document.getElementById('SR_COMPARE').SELECTED_COMPANY.value = company;
	document.getElementById('SR_COMPARE').DO_COMPARE.value = 2;
	document.forms['SR_COMPARE'].submit();
	
}

function ViewDetail (offre)
{
	document.getElementById('SR_COMPARE').SELECTED_PRODUCTS.value = offre;
	document.forms['SR_COMPARE'].submit();
	
}

function VerifCompare ()
{
   if (ProductsToCompare.length >0 && ProductsToCompare.length < 4 ) {
      var str = ProductsToCompare[0];
      for (var i = 1; i < ProductsToCompare.length; i++) {
         str = str + ';' + ProductsToCompare[i];
      }
      document.getElementById('SR_COMPARE').SELECTED_PRODUCTS.value = str;
      return true;
   }
   else {
      alert ('Vous devez choisir de 2 ou 3 offres à comparer.');
      return false;
   }
}

/**************************
Fonction commune
**************************/


function verif_date_valide (d, m, y)
{
   if (d < 1 || m < 1 || y < 1 || d > 31 || m > 12) {
      return false;
   }
   var mths = [31,28,31,30,31,30,31,31,30,31,30,31];
   var lastDay = 0;
   if (m != 2) lastDay = mths[m - 1];
   else if (y%4 != 0) lastDay = mths[1];
   else if (y%100 == 0 && y%400 != 0) lastDay = mths[1];
   else lastDay = mths[1] + 1;
    if (d > lastDay) {
      return false;
  }
  
   
  
   return true;
}


function verif_majeur(d, m, y)
{

   var dateToday = new Date();
   var age = (dateToday.getFullYear() - y) ;
   var mois_a = dateToday.getMonth()+1;
   var jour_a = dateToday.getDate();
  
if(age==17)
{
   if (mois_a < m)
   	age--;
   else if (mois_a == m && jour_a < d)
	age--;
	
}
		
   if (age < 17){
	return false;
	}
else
	return true;

}

/**************************
Formulaire full profile
**************************/

function Verif_modify_profile ()
{
   var form = document.SR_BESOIN;
   var title_ok = false;
   for (var i = 0; i < form.title.length; i++)
   {
      if (form.title[i].checked) {
         title_ok = true;
	 break;
      }
   }
   if (title_ok == false)
   {
     alert ("Vous devez choisir la civilité (M., Mme, Mlle)");
     return false;
   }
   
	if (form.last_name.value.length == 0)
	{
		alert ("Vous devez indiquer votre nom");
		return false;
	}
	if (form.first_name.value.length == 0)
	{
		alert ("Vous devez indiquer votre prénom");
		return false;
	}
	
	if (!form.CODE_POSTAL.value.match(/^(\d{2}|2A|2B)\d{3}$/i))
	{
		alert ("Vous devez indiquer votre code postal");
		return false;
	}

	if (form.email.value.length == 0 || !form.email.value.match(/^[a-z0-9]+([\.\-\_][a-z0-9]+)*@[a-z0-9]+([\.\-][a-z0-9]+)*\.[a-z]{2,}$/i))
	{
		alert ("Vous devez saisir une adresse E-Mail valide (prenom.nom@monemail.com).");
		return false;
	}
	if (form.phone.value.length == 0 || !form.phone.value.match(/^\d{10}$/i))
	{
		alert ("Vous devez indiquer votre numéro de téléphone (10 chiffres)");
		return false;
	}
   
   if (form.birthday_jj.value == '')
   {
      alert ("Vous devez choisir le jour de votre date de naissance");
      return false;
   }
   if (form.birthday_mm.value == '')
   {
      alert ("Vous devez choisir le mois de votre date de naissance");
      return false;
   }
   if (form.birthday_aaaa.value == '')
   {
      alert ("Vous devez choisir l'année de votre date de naissance");
      return false;
   }

	var bDay =parseInt(form.birthday_jj.value, 10);
	var bMonth =parseInt(form.birthday_mm.value, 10);
	var bYear =parseInt(form.birthday_aaaa.value, 10);

   if (verif_date_valide (bDay, bMonth, bYear) == false) {
      alert ("La date de naissance n'est pas possible :\nVérifiez la fin du mois...");
      return false;
   }

   if (form.regime.value == '')
   {
      alert ("Vous devez choisir un régime");
      return false;
   }

	if (form.conjoint[0].checked)
	{
		if (form.conjoint_sexe.value == '') {
			alert ("Vous devez indiquer le sexe de votre conjoint");
			return false;
		}
			   
	   if (form.conjoint_birthday_jj.value == '')
	   {
	      alert ("Vous devez choisir le jour de la date de naissance de votre conjoint");
	      return false;
	   }
	   if (form.conjoint_birthday_mm.value == '')
	   {
	      alert ("Vous devez choisir le mois de la date de naissance de votre conjoint");
	      return false;
	   }
	   if (form.conjoint_birthday_aaaa.value == '')
	   {
	      alert ("Vous devez choisir l'année de la date de naissance de votre conjoint");
	      return false;
	   }

		var cDay =parseInt(form.conjoint_birthday_jj.value, 10);
		var cMonth =parseInt(form.conjoint_birthday_mm.value, 10);
		var cYear =parseInt(form.conjoint_birthday_aaaa.value, 10);

	   if (verif_date_valide (cDay, cMonth, cYear) == false) {
	      alert ("La date de naissance de votre conjoint n'est pas possible :\nVérifiez la fin du mois...");
	      return false;
	   }
		
		if (form.conjoint_regime.value == '') {
			alert ("Vous devez indiquer le régime de votre conjoint");
			return false;
		}
		
		if (form.conjoint_profession.value == '') {
			alert ("Vous devez indiquer la profession de votre conjoint");
			return false;
		}
		
	}

   return true;
}


/**************************
Formulaire Etape 1&2 - CM Global
**************************/

function valide_contact()
{
	 var form = document.contact;
	if (form.last_name.value.length == 0)
	{
		alert ("Vous devez indiquer votre nom");
		return false;
	}

	if (form.email.value.length == 0 || !form.email.value.match(/^[a-z0-9]+([\.\-\_][a-z0-9]+)*@[a-z0-9]+([\.\-][a-z0-9]+)*\.[a-z]{2,}$/i))
	{
		alert ("Vous devez saisir une adresse E-Mail valide (prenom.nom@monemail.com).");
		return false;
	}
	
	if (form.phone.value.length == 0 || !form.phone.value.match(/^\d{10}$/i))
	{
		alert ("Vous devez indiquer votre numéro de téléphone (10 chiffres)");
		return false;
	}
	
	return true;

}


function Verif_form_devis (mode)
{   
   var form = document.SR_BESOIN;
      var title_ok = false;
   
	var title_ok = false;
	for (var i = 0; i < form.title.length; i++)
	{
		if (form.title[i].checked)
		{
			title_ok = true;
			break;
		}
	}
	if (title_ok == false)
	{
		alert ("Merci d’indiquer votre civilité");
		return false;
	}	

	if (form.first_name.value.length == 0)
	{
		alert ("Merci d’indiquer votre prénom");
		return false;
	}
	
	if (form.last_name.value.length == 0)
	{
		alert ("Merci d’indiquer votre nom");
		return false;
	}
	
	if (!form.CODE_POSTAL.value.match(/^(\d{2}|2A|2B)\d{3}$/i))
	{
		alert ("Merci d’indiquer votre code postal");
		return false;
	}	
	
	if (form.VILLE.value.length == 0 )
	{
		alert ("Merci d’indiquer votre ville");
		return false;
	}
	
	if (form.email.value.length == 0 || !form.email.value.match(/^[a-z0-9]+([\.\-\_][a-z0-9]+)*@[a-z0-9]+([\.\-][a-z0-9]+)*\.[a-z]{2,}$/i))
	{
		alert ("Merci d’indiquer une adresse E-Mail valide (prenom.nom@monemail.com).");
		return false;
	}
	
	if (form.phone.value.length == 0 || !form.phone.value.match(/^\d{10}$/i) || form.phone.value.match(/^00.*$/i))
	{
		alert ("Votre numéro de téléphone n'est pas valide");
		return false;
	}
	
	if (!form.birthday_jj.value.match(/^\d{2}$/i))
   {
      alert ("Merci d’indiquer le jour de votre date de naissance");
      return false;
   }
   if (!form.birthday_mm.value.match(/^\d{2}$/i))
   {
      alert ("Merci d’indiquer le mois de votre date de naissance");
      return false;
   }
   if (!form.birthday_aaaa.value.match(/^\d{4}$/i))
   {
      alert ("Merci d’indiquer l'année de votre date de naissance");
      return false;
   }

	var bDay =parseInt(form.birthday_jj.value,10);
	var bMonth =parseInt(form.birthday_mm.value,10);
	var bYear =parseInt(form.birthday_aaaa.value,10);

   if (verif_date_valide (bDay, bMonth, bYear) == false) {
      alert ("La date de naissance n'est pas possible :\nVérifiez la fin du mois...");
      return false;
   }
	
/*
	if (!form.birthday.value.match(/^\d{2}\/\d{2}\/\d{4}$/i))
	{
		alert ("Vous devez indiquer votre date de naissance");
      return false;
	}

	var Tbirthday = form.birthday.value.split('/');
	var bDay = Tbirthday[0];
	var bMonth = Tbirthday[1];
	var bYear = Tbirthday[2];
	
   if (verif_date_valide (bDay, bMonth, bYear) == false) {
      alert ("La date de naissance n'est pas possible :\nVérifiez la fin du mois...");
      return false;
   }
   */

    if (verif_majeur (bDay, bMonth, bYear) == false) {
      alert ("Désolé mais vous devez avoir plus de 17 ans pour accéder à nos offres");
      return false;
   }

	if (form.regime.value == '')
   {
      alert ("Merci d’indiquer un régime");
      return false;
   }
	

   if (form.conjoint[0].checked)
   {
	
	
		if (!form.conjoint_birthday_jj.value.match(/^\d{2}$/i))
	   {
	      alert ("Merci d’indiquer le jour de la date de naissance de votre conjoint");
	      return false;
	   }
	   if (!form.conjoint_birthday_mm.value.match(/^\d{2}$/i))
	   {
	      alert ("Merci d’indiquer le mois de la date de naissance de votre conjoint");
	      return false;
	   }
	   if (!form.conjoint_birthday_aaaa.value.match(/^\d{4}$/i))
	   {
	      alert ("Merci d’indiquer l'année de la date de naissance de votre conjoint");
	      return false;
	   }

		var cDay =parseInt(form.conjoint_birthday_jj.value, 10);
		var cMonth =parseInt(form.conjoint_birthday_mm.value, 10);
		var cYear =parseInt(form.conjoint_birthday_aaaa.value, 10);

	   if (verif_date_valide (cDay, cMonth, cYear) == false) {
	      alert ("La date de naissance de votre conjoint n'est pas possible :\nVérifiez la fin du mois...");
	      return false;
	   }
		
		if (verif_majeur (cDay, cMonth, cYear) == false) {
      alert ("Désolé mais votre conjoint(e) doit avoir plus de 17 ans pour accéder à nos offres");
      return false;
   }
		
		/*
		if (!form.conjoint_birthday.value.match(/^\d{2}\/\d{2}\/\d{4}$/i))
		{
			alert ("Vous devez indiquer la date de naissance de votre conjoint");
			return false;
		}
		
		var Tconjoint_birthday = form.conjoint_birthday.value.split('/');
		var cDay = Tconjoint_birthday[0];
		var cMonth = Tconjoint_birthday[1];
		var cYear = Tconjoint_birthday[2];

	   if (verif_date_valide (cDay, cMonth, cYear) == false) {
	      alert ("La date de naissance de votre conjoint n'est pas possible :\nVérifiez la fin du mois...");
	      return false;
	   }
		*/
   }
	
	if (!form.start_date_jj.value.match(/^\d{2}$/i))
	{
		alert ("Merci d’indiquer le jour de la date de prise d'effet souhaitée");
		return false;
	}
	if (!form.start_date_mm.value.match(/^\d{2}$/i))
	{
		alert ("Merci d’indiquer le mois de la date de prise d'effet souhaitée");
		return false;
	}
	if (!form.start_date_aaaa.value.match(/^\d{4}$/i))
	{
		alert ("Merci d’indiquer l'année de la date de prise d'effet souhaitée");
		return false;
	}

	var sDay =parseInt(form.start_date_jj.value, 10);
	var sMonth =parseInt(form.start_date_mm.value, 10);
	var sYear =parseInt(form.start_date_aaaa.value, 10);
	
	/*
	if (!form.start_date.value.match(/^\d{2}\/\d{2}\/\d{4}$/i))
	{
		alert ("Vous devez indiquer la date de prise d'effet");
		return false;
	}
	
	var Tstart_date = form.start_date.value.split('/');
	var sDay = Tstart_date[0];
	var sMonth = Tstart_date[1];
	var sYear = Tstart_date[2];
	*/
	
	if (verif_date_valide (sDay, sMonth, sYear) == false) {
		alert ("La date de prise d'effet n'est pas possible :\nVérifiez la fin du mois...");
		return false;
	}
	
	var currentDate = new Date();
   var startDate = new Date(sYear, sMonth-1, sDay+1);   // le jour suivant la date donnee à 0 H 0 M

   if (startDate < currentDate)   // dans le passé ?
   {
      alert ("Date invalide : la date de début de la garantie commence au plus tot aujourd'hui.");
      return false;
   }
	

   return true;
}

function verif_date_valide (d, m, y)
{
   if (d < 1 || m < 1 || y < 1 || d > 31 || m > 12) {
      return false;
   }
   var lastDay = new Date (y, m, 0);
   if (d > lastDay.getDate()) {
      return false;
   }
   return true;
}


function valide_accueil ()
{
   if (document.ACCUEIL.type_paiement.value == 'Chèque' && document.ACCUEIL.fractionnement.value == 'Mensuelle')
   {
      alert ("Vous ne pouvez pas choisir un 'paiement par chèque' et une 'périodicité mensuelle'.\n\nMerci de corriger vos choix.");
      return false;
   }

   var title_ok = false;
   for (var i = 0; i < document.ACCUEIL.title.length; i++)
   {
      if (document.ACCUEIL.title[i].checked) {
         title_ok = true;
	 break;
      }
   }
   if (title_ok == false)
   {
     alert ("Vous devez choisir la civilité (M., Mme, Mlle)");
     return false;
   }

   if (document.ACCUEIL.last_name.value.length == 0)
   {
      alert ("Vous avez oublié de saisir le nom.");
      return false;
   }

   if (document.ACCUEIL.first_name.value.length == 0)
   {
      alert ("Vous avez oublié de saisir le prénom.");
      return false;
   }
   
   if (!document.ACCUEIL.CODE_POSTAL.value.match(/^(\d{2}|2A|2B)\d{3}$/i))
   {
     alert ("Vous avez oublié de saisir votre code postal");
     return false;
   }
   
   if (!document.ACCUEIL.email.value.match(/^[a-z0-9]+([\.\-\_][a-z0-9]+)*@[a-z0-9]+([\.\-][a-z0-9]+)*\.[a-z]{2,}$/i))
   {
      alert ("Vous devez saisir une adresse email valide (prenom.nom@monemail.com).");
      return false;
   }

   document.ACCUEIL.phone.value = document.ACCUEIL.phone.value.replace (/[\s\.]/g, '');   // on vire les espaces et les points
   if (document.ACCUEIL.phone.value.length == 0)
   {
      alert ("Vous avez oublié de saisir un téléphone.");
      return false;
   }

   if (!document.ACCUEIL.birthday.value.match(/^\d{2}\/\d{2}\/\d{4}$/))
   {
      alert ("La date de naissance est invalide.");
      return false;
   }
   var strDate = document.ACCUEIL.birthday.value;
   var bDay = parseInt(strDate.substr(0, 2), 10);
   var bMonth = parseInt(strDate.substr(3, 2), 10);
   var bYear = parseInt(strDate.substr(6, 4), 10);

   if (verif_date_valide (bDay, bMonth, bYear) == false) {
      alert ("La date de naissance n'est pas possible :\nVérifiez la fin du mois...");
      return false;
   }

   var strDate = document.ACCUEIL.start_date.value;
   if (!strDate.match(/^\d{2}\/\d{2}\/\d{4}$/))
   {
      alert ("La date de début de garantie est invalide (format : jj/mm/aaaa).");
      return false;
   }
   var startDay = parseInt(strDate.substr(0, 2), 10);
   var startMonth = parseInt(strDate.substr(3, 2), 10);
   var startYear = parseInt(strDate.substr(6, 4), 10);

   if (verif_date_valide (startDay, startMonth, startYear) == false) {
      alert ("La date de début de garantie n'est pas possible :\nVérifiez la fin du mois...");
      return false;
   }

   var currentDate = new Date();
	var startDate = new Date(startYear, startMonth-1, startDay+1);   // le jour suivant la date donnee à 0 H 0 M
	if(TYPE_START_DATE == 'current_month')
	{
		var nextdate = new Date(currentDate.getYear(), currentDate.getMonth(), '01');
		if (startDate < nextdate)   // dans le passé ?
		{
			alert ("Date invalide : la date de début de la garantie commence au plus tot ce mois-ci.");
			return false;
		}
	}
	else
	{
		var nextdate = new Date(currentDate.getYear(), currentDate.getMonth() +1, '01');
		if (startDate < nextdate)   // dans le passé ?
		{
			alert ("Date invalide : la date de début de la garantie commence au plus tot le mois prochain.");
			return false;
		}
	}   

   return true;
}

function valide_accueil_2 ()
{
   if (document.ACCUEIL.data_type_paiement.value == 'Chèque' && document.ACCUEIL.data_fractionnement.value == 'Mensuelle')
   {
      alert ("Vous ne pouvez pas choisir un 'paiement par chèque' et une 'périodicité mensuelle'.\n\nMerci de corriger vos choix.");
      return false;
   }

   var title_ok = false;
   for (var i = 0; i < document.ACCUEIL.data_title.length; i++)
   {
      if (document.ACCUEIL.data_title[i].checked) {
         title_ok = true;
	 break;
      }
   }
   if (title_ok == false)
   {
     alert ("Vous devez choisir la civilité (M., Mme, Mlle)");
     return false;
   }

   if (document.ACCUEIL.data_last_name.value.length == 0)
   {
      alert ("Vous avez oublié de saisir le nom.");
      return false;
   }

   if (document.ACCUEIL.data_first_name.value.length == 0)
   {
      alert ("Vous avez oublié de saisir le prénom.");
      return false;
   }
   
   if (!document.ACCUEIL.data_CODE_POSTAL.value.match(/^(\d{2}|2A|2B)\d{3}$/i))
   {
     alert ("Vous avez oublié de saisir votre code postal");
     return false;
   }
   
   if (!document.ACCUEIL.data_email.value.match(/^[a-z0-9]+([\.\-\_][a-z0-9]+)*@[a-z0-9]+([\.\-][a-z0-9]+)*\.[a-z]{2,}$/i))
   {
      alert ("Vous devez saisir une adresse email valide (prenom.nom@monemail.com).");
      return false;
   }

   document.ACCUEIL.data_phone.value = document.ACCUEIL.data_phone.value.replace (/[\s\.]/g, '');   // on vire les espaces et les points
   if (document.ACCUEIL.data_phone.value.length == 0)
   {
      alert ("Vous avez oublié de saisir un téléphone.");
      return false;
   }

   if (!document.ACCUEIL.data_birthday.value.match(/^\d{2}\/\d{2}\/\d{4}$/))
   {
      alert ("La date de naissance est invalide.");
      return false;
   }
   var strDate = document.ACCUEIL.data_birthday.value;
   var bDay = parseInt(strDate.substr(0, 2), 10);
   var bMonth = parseInt(strDate.substr(3, 2), 10);
   var bYear = parseInt(strDate.substr(6, 4), 10);

   if (verif_date_valide (bDay, bMonth, bYear) == false) {
      alert ("La date de naissance n'est pas possible :\nVérifiez la fin du mois...");
      return false;
   }

   var strDate = document.ACCUEIL.data_start_date.value;
   if (!strDate.match(/^\d{2}\/\d{2}\/\d{4}$/))
   {
      alert ("La date de début de garantie est invalide (format : jj/mm/aaaa).");
      return false;
   }
   var startDay = parseInt(strDate.substr(0, 2), 10);
   var startMonth = parseInt(strDate.substr(3, 2), 10);
   var startYear = parseInt(strDate.substr(6, 4), 10);

   if (verif_date_valide (startDay, startMonth, startYear) == false) {
      alert ("La date de début de garantie n'est pas possible :\nVérifiez la fin du mois...");
      return false;
   }

   var currentDate = new Date();
	var startDate = new Date(startYear, startMonth-1, startDay+1);   // le jour suivant la date donnee à 0 H 0 M

	if(TYPE_START_DATE == 'current_month')
	{
		var nextdate = new Date(currentDate.getYear(), currentDate.getMonth(), '01');
		if (startDate < nextdate)   // dans le passé ?
		{
			alert ("Date invalide : la date de début de la garantie commence au plus tot ce mois-ci.");
			return false;
		}
	}
	else
	{
		var nextdate = new Date(currentDate.getYear(), currentDate.getMonth() +1, '01');
		if (startDate < nextdate)   // dans le passé ?
		{
			alert ("Date invalide : la date de début de la garantie commence au plus tot le mois prochain.");
			return false;
		}
	}   

   return true;
}

//]]>