var errDesc = ' ';
var indw = 0;
var ie = /MSIE/.test(navigator.userAgent);
var moz = !ie && navigator.product == "Gecko";
var madr = false ;
// -----------------------------------------------------------------------------
// chain = chaine a lire - delimiter = delimiteur - num = numero de l element a lire 
// -----------------------------------------------------------------------------
function RecupChaine(chain,delimiter,num)
{
	var Count=0;
	var newchain='';
	var exp = chain.split(delimiter);
	
	Count = exp.length;	
	for (var i = 0; i < (Count); i++) 
	{
		if (i == num) newchain = exp[i];		
	}
	return newchain;
}
// -----------------------------------------------------------------------------
function ctrToday(jj,mm,aa,revue)
// -----------------------------------------------------------------------------
{
	var dt = new Date(aa,mm - 1 , jj);
	var now = new Date();
	var diff = dt.getTime() - now.getTime();

	jours = new Array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'); 
	var day_susp = jours[dt.getDay()];

	if ( revue == 'LPQ' && day_susp == 'Samedi' )
	{ 
		errDesc = "Le début ou la fin de la suspension ne peut pas avoir lieu un samedi. \n Merci de choisir le jour précédent ou suivant.";
		return false;
	}
	if ( revue == 'MQT' && day_susp == 'Lundi' )
	{ 
		errDesc = "Le début ou la fin de la suspension ne peut pas avoir lieu un lundi. \n Merci de choisir le jour précédent ou suivant.";
		return false;
	}
	if ( revue == 'ACT' && day_susp == 'Lundi' )
	{ 
		errDesc = "Le début ou la fin de la suspension ne peut pas avoir lieu un lundi. \n Merci de choisir le jour précédent ou suivant.";
		return false;
	}

	var leap = 0 ;
	var err = 0 ;
    if ((aa % 4 == 0) || (aa % 100 == 0) || (aa % 400 == 0)) leap = 1;
    if ((mm == 2) && (leap == 1) && (jj > 29)) err = 1;
    if ((mm == 2) && (leap != 1) && (jj > 28)) err = 1;
    if ((jj > 31) && ((mm == "01") || (mm == "03") || (mm == "05") || (mm == "07") || (mm == "08") || (mm == "10") || (mm == "12"))) err = 1;
    if ((jj > 30) && ((mm == "04") || (mm == "06") || (mm == "09") || (mm == "11"))) err = 1;
	if (err == 1) 
	   { 
	   errDesc = "Date incorrecte";
	   return false;
	   }

	mtg = new String(diff/86400000) ;
	point=mtg.indexOf(".")   ;
	days=mtg.substring(0,point)   ;

	if (days < 0) 
	   { 
	   errDesc = "Date incorrecte";
	   return false;
	   }
	   
if (days < 7) { 
   dt1 = new Date(now.getTime() + ( 7 * 86400000 ));
   jj = dt1.getDate();
   mm = dt1.getMonth() + 1;
   aa = dt1.getYear();
   alert("Un délai de une semaines nous est nécessaire pour que votre suspension soit prise en compte.\n Attention saisissez une date supérieure au " + jj + "/" + mm + "/" + aa);
   return false;}
   
return true;
}
// -----------------------------------------------------------------------------
function ctrDates(jj,mm,aa,jjf,mmf,aaf)
// -----------------------------------------------------------------------------
{
	var dt = new Date(aa,mm - 1 , jj);
	var dtf = new Date(aaf,mmf - 1 , jjf);

	var diff = dtf.getTime() - dt.getTime();

	mtg = new String(diff/86400000) ;
	point=mtg.indexOf(".")   ;
	days=mtg.substring(0,point)   ;

	if (diff < 0) 
	   { 
   	   errDesc = "Date incorrecte";
	   return false;
	   }
return true;
}
// -----------------------------------------------------------------------------
function ctrDatePrv(Date1,Date2)
// -----------------------------------------------------------------------------
{
	var exp1 = Date1.split('/');
	jj1 = exp1[0]; mm1 = exp1[1]; aa1 = exp1[2]; 
	var dt1 = new Date(aa1,mm1 - 1 , jj1);

	var exp2 = Date2.split('/');
	jj2 = exp2[0]; mm2 = exp2[1]; aa2 = exp2[2]; 
	var dt2 = new Date(aa2,mm2 - 1 , jj2);

	var diff = dt2.getTime() - dt1.getTime();
	mtg = new String(diff/86400000) ;
	point=mtg.indexOf(".")   ;
	days=mtg.substring(0,point)   ;

	if (diff < 0) 
	   { 
   	   //errDesc = "Votre abonnement est en prélevement \n La date de fin doit être inférieure à \n votre date d'échéance (" + Date2 + ").";
   	   errDesc = "Votre abonnement est en prélèvement. Pour que votre suspension soit prise en compte,\n merci d’en faire la demande 4 jours avant le début de la période souhaitée.\n En cas de problème, vous pouvez contacter le service abonnement au 0825 093 393.";
	   return false;
	   }
return true;
}
// -----------------------------------------------------------------------------
function addDayToDate(nbr)
// -----------------------------------------------------------------------------
{
	var now = new Date();
	dt1 = new Date(now.getTime() + ( nbr * 86400000 ));
	
	jj = dt1.getDate();
	jj = ((jj < 10) ? '0' : '') + jj; 
	mm = dt1.getMonth() + 1;
	mm = ((mm < 10) ? '0' : '') + mm; 
	aa = dt1.getYear();
	
	dtfin = jj + '/' + mm + '/' + aa;
	return dtfin;
}
// -----------------------------------------------------------------------------
function sendmail(id, datdeb, datfin)
{
	wstr = "SUS_ABO";
	lettre = "SUS_ABO";
	
    num_ctr = RecupChaine(id,'_',0);
    num_fid = RecupChaine(id,'_',1);
	
	ajaxEngine.sendRequest1( 'sendmail',"P1=PBP&LETTRE="  + lettre  
							+ "&PG=" + wstr + "&CTR_NUM=" + num_ctr  
							+ "&CTR_FID=" + num_fid 
							+ "&DATDEB="  + datdeb  
							+ "&DATFIN="  + datfin
							 );

    return true ;
}
// -----------------------------------------------------------------------------
function registerAjaxStuff() 
// -----------------------------------------------------------------------------
{

	rep = location.pathname.split('/');

    ajaxEngine.registerAjaxElement( 'mess', document.getElementById('mess') );
    ajaxEngine.registerAjaxElement( 'erreur', document.getElementById('erreur') );

    ajaxEngine.registerRequest( 'suspension', '/'+ rep[1] + '/ab_validate_susp.php' );
    ajaxEngine.registerRequest( 'sendmail', '/' + rep[1] + '/ab_send_mail.php' );
}
// -------------------------------------------------------------------------------------
function parametres(form1)
// -----------------------------------------------------------------------------
{
    var elements = form1.elements;
    var pairs = new Array();

    for (var i = 0; i < elements.length; i++) {
        if ( elements[i].checked == false && elements[i].type == 'radio' ) continue;  
         
        if ((name = elements[i].name) && (value = elements[i].value))
           {
            if ( elements[i].type == 'checkbox' )
              {
              if ( elements[i].checked == false && elements[i].value == 'N' )
                  pairs.push(name + "=O"); 
                 else
              if ( elements[i].checked == false && elements[i].value == 'O' )
                  pairs.push(name + "=N"); 
                  else
              if ( elements[i].checked == true  )
                  pairs.push(name + "=" + elements[i].value );  
              }    
              else  
                  pairs.push(name + "=" + escape(value));
              
           }    
     }
return pairs;
}
// -----------------------------------------------------------------------------
function validajax(id) 
// -----------------------------------------------------------------------------
{
    var pairs = new Array();
    var form1 = document.getElementById("form_" + id) ;
	pairs = parametres(form1);

    if ( document.getElementById('P1') ) pairs.push("P1=" + document.getElementById('P1').value);
    if ( document.getElementById('P2') ) pairs.push("P2=" + document.getElementById('P2').value);
    
    num_ctr = RecupChaine(id,'_',0);
    num_fid = RecupChaine(id,'_',1);
    
    pairs.push("CTR_NUM=" + num_ctr);
    pairs.push("CTR_FID=" + num_fid);

    ajaxEngine.sendRequest1( 'suspension',"PG=SUS_ABO&" + pairs.join("&"));

	if ( document.getElementById('erreur').innerHTML != "0")
	   { 
	    document.getElementById('mess').style.display="inline";
	    return false;
	   }
	   else
	   document.getElementById('mess').style.display="none";
	 
	 return true;
}
// -----------------------------------------------------------------------------
function validform(id) 
// -----------------------------------------------------------------------------
{
  var form1 = document.getElementById("form_" + id) ;
  var chp; var isOk = true;  var nxt = "SUS_CONF";
  var la_revue = form1.REVUE.value;

  document.getElementById("mess").innerHTML = "" ;
  document.getElementById("erreur").innerHTML = "" ;

  for (var i = 0 , isOk = true; isOk && (i < form1.elements.length); i++) 
  	{
  	    var chp = form1.elements[i];
		if (isOk && chp.name == "SUS_DEB_JJ")  isOk = ctrToday(form1.SUS_DEB_JJ.value,form1.SUS_DEB_MM.value,form1.SUS_DEB_AA.value,la_revue); 

		if (isOk && chp.name == "SUS_FIN_JJ")  
			{
			nxt = "SUS_CONF";
			isOk = ctrToday(form1.SUS_FIN_JJ.value,form1.SUS_FIN_MM.value,form1.SUS_FIN_AA.value,la_revue);
			if ( isOk )
				isOk = ctrDates(form1.SUS_DEB_JJ.value,form1.SUS_DEB_MM.value,form1.SUS_DEB_AA.value,
								form1.SUS_FIN_JJ.value,form1.SUS_FIN_MM.value,form1.SUS_FIN_AA.value); 
			}
	}
/******************
	if (document.getElementById('ABO_SPE').value != '')
	{
		datfin = form1.SUS_FIN_JJ.value + "/" + form1.SUS_FIN_MM.value + "/" + form1.SUS_FIN_AA.value;
		isOk = ctrDatePrv(datfin, document.getElementById('DATE_FIN').value);
		if ( isOk )
			isOk = ctrDates(form1.SUS_DEB_JJ.value,form1.SUS_DEB_MM.value,form1.SUS_DEB_AA.value,
							form1.SUS_FIN_JJ.value,form1.SUS_FIN_MM.value,form1.SUS_FIN_AA.value); 
	}
********************/		

  datdeb = form1.SUS_DEB_JJ.value + "/" + form1.SUS_DEB_MM.value + "/" + form1.SUS_DEB_AA.value;
  datfin = form1.SUS_FIN_JJ.value + "/" + form1.SUS_FIN_MM.value + "/" + form1.SUS_FIN_AA.value;

  if (!isOk) 
 	 {
 	  if (errDesc != '') alert(errDesc);
	  chp.focus();
	  rc = isOk;
	  }
	  else
	  {
	  rc = validajax(id) ;
	  if ( rc == false ) return rc;
	  }
	  
  if ( rc )
  {
	  send = sendmail(id, datdeb, datfin);
	  form1.action = document.location.pathname + "?P1=" + document.getElementById('P1').value 
	  											+ "&P2=" + document.getElementById('P2').value
	  											+ "&REVUE=" + document.getElementById('REVUE').value
	  											+ "&DATDEB=" + datdeb
	  											+ "&DATFIN=" + datfin
	  											+ "&PG=" + nxt ;
	  form1.submit(); return false ;
  }

return rc;
}
// -----------------------------------------------------------------------------
function Initialise()
// -----------------------------------------------------------------------------
{
	var nbf = document.forms.length ;
    var new_date = addDayToDate('8');
	var split_date = new_date.split('/');
	var jj = split_date[0]; var jjf = split_date[0];
	var mm = split_date[1]; var mmf = split_date[1];
	var aa = split_date[2]; var aaf = split_date[2];

	for(var i=0; i<nbf; i++)
	{
		var abo_spe = ''; var date_fin = ''; var reg_ini = '';
		var formu = document.forms[i];      

		// --- INPUT ------------------------------------- */
		var champs = formu.getElementsByTagName("input" );
		for(var j=0, n=champs.length; j<n; j++)
		{
		  if (champs[j].getAttribute("name" ) == 'ABO_SPE')  abo_spe = champs[j].value;
  		  if (champs[j].getAttribute("name" ) == 'REG_INI')  reg_ini = champs[j].value;
		  if (champs[j].getAttribute("name" ) == 'DATE_FIN') date_fin = champs[j].value;
		}
		if ( abo_spe != '' || reg_ini == 'E' )
		{
		Date1 = date_fin
		var exp1 = Date1.split('/');
		jjf = exp1[0]; mmf = exp1[1]; aaf = exp1[2]; 
		}

		// --- SELECT ------------------------------------- */
		var champs = formu.getElementsByTagName("select" );
		for(var j=0, n=champs.length; j<n; j++)
		{
	      if (champs[j].getAttribute("name" ) == 'SUS_DEB_JJ') champs[j].value = jj;
	      if (champs[j].getAttribute("name" ) == 'SUS_DEB_MM') champs[j].value = mm;
	      if (champs[j].getAttribute("name" ) == 'SUS_DEB_AA') champs[j].value = aa;
	      if (champs[j].getAttribute("name" ) == 'SUS_FIN_JJ') champs[j].value = jjf;
	      if (champs[j].getAttribute("name" ) == 'SUS_FIN_MM') champs[j].value = mmf;
	      if (champs[j].getAttribute("name" ) == 'SUS_FIN_AA') champs[j].value = aaf;
		}
	}
return true;
}
// -----------------------------------------------------------------------------
window.onload = function() 
{
    registerAjaxStuff();
    Initialise();
    
	if ( document.getElementById('mess').innerHTML != "")
	   { 
	   document.getElementById('mess').style.display="inline";
	   }
	document.onclick = function (e) { 
	                if (!e) e = window.event.srcElement ;
	                    else e = e.target ;
	                if ( e.name )
	           	     {    
	           	     if (e.name.substring(0,4) == "lnk_" ) return validform(e.name.substring(4));
	           	     }
	                }
}
// -----------------------------------------------------------------------------
sfHover = function()
	{

	var sfEls = document.getElementById("valider");
	if ( sfEls ) 
	{
		sfEls.onmouseover=function() {this.className+=" sfhover";}
		sfEls.onmouseout=function() {this.className=this.className.replace(new RegExp(" sfhover\\b"), "");}		
	}
	sfEls = document.getElementById("quitter");
	if ( sfEls ) 
	{
		sfEls.onmouseover=function() {this.className+=" sfhover";}
		sfEls.onmouseout=function() {this.className=this.className.replace(new RegExp(" sfhover\\b"), "");}		
	}

	}

if (window.attachEvent) window.attachEvent("onload", sfHover);


