function controlerDate(val) 
{
    var ok = false; 
    /*var ok = false;
    ctl = /^(\d\d?)[\/\-\.](\d\d?)[\/\-\.](\d{4,})$/;
    var tab = val.match(ctl);
    if (tab) {
          var unedate = new Date(tab[3], parseInt(tab[2])-1, tab[1]);
          if ((unedate.getFullYear() == tab[3]) && (unedate.getMonth() == tab[2]-1) && (unedate.getDate() == tab[1])) 
          ok = true;
    }    
    return ok;*/
	
	 e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");

if (e.test(val)) // On teste l'expression régulière pour valider la forme de la date
{
	// On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
	j = parseInt(val.split("/")[0], 10); // jour
	m = parseInt(val.split("/")[1], 10); // mois
	a = parseInt(val.split("/")[2], 10); // année 
	
	var unedate = new Date(a,  parseInt(m)-1,j);
	 // alert(" annee ="+a+" mois =" +m+" jour=" +j+" date = "+unedate);
	 // alert(" annee = "+unedate.getFullYear() +" ="+a+" mois ="+unedate.getMonth() +" = "+m+" jour = "+unedate.getDate()+"="+j+" param = "+val) ;
	  if ((unedate.getFullYear() == a) && (unedate.getMonth() == parseInt(m)-1) && (unedate.getDate() == j)) 
	  {
		ok = true;	
	}
}

return ok;
}



/***********************************************/
/*Renvoi 1 si la 1er date est + grande			           */
/*Renvoi 2 si la 2ème date est + grande		           */
/*Renvoi 0 si les d1 = d2			                                */
/***********************************************/

function comparerDate(d1,d2) 
{
    var tab1 = d1.split("/");
	var tab2 = d2.split("/");
	
	date1 = tab1[2]+tab1[1]+tab1[0];
	ndate1 = parseInt(date1);
	
	date2 = tab2[2]+tab2[1]+tab2[0];
	ndate2 = parseInt(date2);
	
	
if((date1 - date2)>0)
	return "1";
else if((date2 - date1)>0)
    return "2";
else if((date2 - date1)==0) 
	return "0";
}


// Supprime les espaces inutiles en début et fin de la chaîne passée en paramètre.
function trim(aString) 
{
    var regExpBeginning = /^\s+/;
    var regExpEnd       = /\s+$/;
    return aString.replace(regExpBeginning, "").replace(regExpEnd, "");
}

 function afficherChkSpan(idChk,idSpan)
 {
      targetElement = document.getElementById(idSpan) ;

      if(document.getElementById(idChk).checked == 1)
       {
           if (targetElement.style.display == "none")
              targetElement.style.display = "block" ;

       }
       else
       {
           if (targetElement.style.display == "block")
              targetElement.style.display = "none" ;
       }
 }
 
 function PopupFlash(anim,larg,haut) { 

//La taille de la pop up est fonction de la taille de l'anim 
hwin=parseInt(haut)+50;
lwin=parseInt(larg)+50;

w=open("Visualisation",'image',"width="+lwin+",height="+hwin+",toolbar=no,scrollbars=no,resizable=no"); 
w.document.write("<HTML><HEAD><TITLE></TITLE></HEAD>"); 
w.document.write("<object type='application/x-shockwave-flash' data='"+anim+"' width='"+larg+"' height='"+haut+"'>");
w.document.write(" <param name='movie' value='"+anim+"' /> </object>");
w.document.write("</BODY></HTML>"); 
w.document.close(); 
} 


 function OuvrirPopUpCgv() { 

//La taille de la pop up est fonction de la taille de l'anim 
hwin=550;
lwin=650;

strText = RecupereText("/boutique/affiche_cgv.jsp?id=1");
w=open("Condition générales",'image',"width="+lwin+",height="+hwin+",toolbar=no,scrollbars=yes,resizable=yes"); 
w.document.write("<HTML><HEAD><TITLE></TITLE></HEAD><BODY>"); 
w.document.write(strText);
w.document.write("</BODY></HTML>"); 
w.document.close(); 
} 


function RecupereText(url) 
{
   document.getElementsByTagName('body')[0].style.cursor = 'wait';
   xhr_object = getObjectHttp(url,false);//En synchrone
   xhr_object.send(null);      
   if (xhr_object.readyState == 4) 
   {
	document.getElementsByTagName('body')[0].style.cursor = 'default';
	return unescape(xhr_object.responseText);   

   }        
}
function controlerEmail(valeur) {
    ctl = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+([\.][a-z0-9-]+)+$/;
    if (valeur.search(ctl) != -1) 
		return true;
    else
		return false;
}


/******************************************************************/
/*			                 AJAX							  */
/******************************************************************/


function getObjectHttp(url,bAsynchrone)
{
	var retour=false;  
    if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return(false);
   xhr_object.open("GET", url + "&nocache=" + Math.random(), bAsynchrone);   
   xhr_object.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
   return xhr_object;
}

function ChargeZone(url, zonediv) 
{	
   document.getElementsByTagName('body')[0].style.cursor = 'wait';
   xhr_object = getObjectHttp(url,false);//En synchrone
   xhr_object.send(null);      
   if (xhr_object.readyState == 4) 
   {
	document.getElementById(zonediv).innerHTML = unescape(xhr_object.responseText);   

   }     
   document.getElementsByTagName('body')[0].style.cursor = 'default';
}

function ExecuteFonction(url) 
{  
   xhr_object = getObjectHttp(url,false);//En synchrone
   xhr_object.send(null);        
}



/*function AjouterPanier(url) {
    document.getElementsByTagName('body')[0].style.cursor = 'wait';
    xhr_object = getObjectHttp(url,true);
    xhr_object.onreadystatechange  = function() {
		if (navigator.appName == "Microsoft Internet Explorer")
		{
			largeur=Math.round(screen.availHeight/2)-50;	
			hauteur=Math.round(document.body.scrollTop+screen.availHeight/2)-200;		
		}
		else
		{
			largeur=Math.round(screen.availHeight/2);
			hauteur=Math.round(pageYOffset+screen.availHeight/2)-200;
		}	
		document.getElementById("popUpPanier").style.left =largeur;
		document.getElementById("popUpPanier").style.top =hauteur;	
		document.getElementById("popUpPanier").style.display = 'block'; 
	}   
   xhr_object.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');      
   xhr_object.send(null);      
   document.getElementsByTagName('body')[0].style.cursor = 'default';
}*/

/*function AjouterPanier(url,idPdt) {
    //document.getElementsByTagName('body')[0].style.cursor = 'wait';
    xhr_object = getObjectHttp(url,false);
	xhr_object.send(null);      
    if(xhr_object.readyState == 4) {
	//document.getElementsByTagName('body')[0].style.cursor = 'pointer';
		if (navigator.appName == "Microsoft Internet Explorer")
		{
			largeur=Math.round(screen.availHeight/2)-50;	
			hauteur=Math.round(document.body.scrollTop+screen.availHeight/2)-200;		
		}
		else
		{
			largeur=Math.round(screen.availHeight/2);
			hauteur=Math.round(pageYOffset+screen.availHeight/2)-200;
		}	
		document.getElementById("popUpPanier").style.left =largeur;
		document.getElementById("popUpPanier").style.top =hauteur;	
		document.getElementById("popUpPanier").style.display = 'block'; 
		strResponseText = unescape(xhr_object.responseText);*/
		/***************Parti ajout CD***************************/
		
		/*if(trim(strResponseText)!="")
		{
			document.getElementById("MsgCdSupp").style.display = 'block'; 
			document.getElementById("id_cd_supp").value =xhr_object.responseText;
			document.getElementById("id_pdt_cd_supp").value =idPdt;
		}
		else
		document.getElementById("MsgCdSupp").style.display = 'none'; */
		/***************Fin Parti ajout CD***************************/
		
	/*}   
   xhr_object.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');      
   //xhr_object.send(null);      
   //document.getElementsByTagName('body')[0].style.cursor = 'pointer';
}*/

function AjouterPanier(url,idPdt) {
    //document.getElementsByTagName('body')[0].style.cursor = 'wait';
    xhr_object = getObjectHttp(url,false);
	xhr_object.send(null);      
    if(xhr_object.readyState == 4) {
	//document.getElementsByTagName('body')[0].style.cursor = 'pointer';
		document.location.href='/boutique/panier.jsp';
		
}
}

function TestExistanceMail(url) {	
   xhr_object = getObjectHttp(url,false);    
   xhr_object.send(null);      
   if (xhr_object.readyState == 4) {
		 //document.getElementById("retour_fonction").value= xhr_object.responseText;  
		 retour = xhr_object.responseText;  		 
	   }  
   return retour;
   
      
}

function AfficheDivPositionner(idDiv,top,left)
{
  pTop = parseInt(top);
  pLeft = parseInt(left);
  if (navigator.appName == "Microsoft Internet Explorer")
  {
     largeur=Math.round(screen.availHeight/2)-50;
     hauteur=Math.round(document.body.scrollTop+screen.availHeight/2)-200;
  }
  else
  {
      largeur=Math.round(screen.availHeight/2);
       hauteur=Math.round(pageYOffset+screen.availHeight/2)-200;
  }
  document.getElementById(idDiv).style.left =largeur +pLeft;
  document.getElementById(idDiv).style.top =hauteur + pTop;
  document.getElementById(idDiv).style.display = 'block';
}

function InscrNewsletter(id_div)
{
    NbError = 0;
    msgError ="";
    if(trim(document.getElementById("email_news").value) == "")
     {
         NbError =NbError +1;
         msgError = "-Vous devez saisir votre adresse email.<br><br>";
     }
    else
    {
     //on teste le format du mail
     if(controlerEmail(trim(document.getElementById("email_news").value)) == false)
     {
       msgError ="-Le format de l'adresse mail est incorrect.<br>";
       NbError = NbError +1;
  
     }
    }


     if(NbError >0)
     {
        AfficheDivPositionner("popUpConnect","100","10");
         document.getElementById("div_error_Envoi").style.display ="none";
         document.getElementById("FormMdp").style.display ="none";
         document.getElementById("RetourEnvoi").style.display ="none";
         document.getElementById("ErreurConnexion").style.display ="block";
        document.getElementById("div_error_Connect").innerHTML = "<br><center>"+msgError +"</center><br><br>";
        return false;
     }
     else
     {
       /*document.getElementById("type_action_news").value = "NEWS";	 */
	   var act;
	   if(document.getElementsByName("newsletter")[0].checked == true)
			act=document.getElementsByName("newsletter")[0].value;
		else if(document.getElementsByName("newsletter")[1].checked == true)
			act=document.getElementsByName("newsletter")[1].value;
			
	   url="/function_newsletter.jsp?email="+trim(document.getElementById("email_news").value)+"&act="+act;
	   ChargeZone(url,id_div);
       return false;
     }
}

/********************Calendrier***************************************/




// Project: Dynamic Date Selector (DtTvB) - 2006-03-16
// Script featured on JavaScript Kit- http://www.javascriptkit.com
// Code begin...
// Set the initial date.
var ds_i_date = new Date();
ds_c_month = ds_i_date.getMonth() + 1;
ds_c_year = ds_i_date.getFullYear();

// Get Element By Id
function ds_getel(id) {
	return document.getElementById(id);
}

// Get the left and the top of the element.
function ds_getleft(el) {
	var tmp = el.offsetLeft;
	el = el.offsetParent
	while(el) {
		tmp += el.offsetLeft;
		el = el.offsetParent;
	}
	return tmp;
}
function ds_gettop(el) {
	var tmp = el.offsetTop;
	el = el.offsetParent
	while(el) {
		tmp += el.offsetTop;
		el = el.offsetParent;
	}
	return tmp;
}

// Output Element
var ds_oe = ds_getel('ds_calclass');
// Container
var ds_ce = ds_getel('ds_conclass');

// Output Buffering
var ds_ob = ''; 
function ds_ob_clean() {
	ds_ob = '';
}
function ds_ob_flush() {
	ds_oe.innerHTML = ds_ob;
	ds_ob_clean();
}
function ds_echo(t) {
	ds_ob += t;
}

var ds_element; // Text Element...

var ds_monthnames = [
'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'
]; // You can translate it for your language.

var ds_daynames = [
'Dim', 'Lun', 'Mar', 'Me', 'Jeu', 'Ven', 'Sam'
]; // You can translate it for your language.

// Calendar template
function ds_template_main_above(t) {
	return '<table cellpadding="3" cellspacing="1" class="ds_tbl">'
	     + '<tr>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_py();">&lt;&lt;</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_pm();">&lt;</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_hi();" colspan="3">[Fermer]</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_nm();">&gt;</td>'
		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_ny();">&gt;&gt;</td>'
		 + '</tr>'
	     + '<tr>'
		 + '<td colspan="7" class="ds_head">' + t + '</td>'
		 + '</tr>'
		 + '<tr>';
}

function ds_template_day_row(t) {
	return '<td class="ds_subhead">' + t + '</td>';
	// Define width in CSS, XHTML 1.0 Strict doesn't have width property for it.
}

function ds_template_new_week() {
	return '</tr><tr>';
}

function ds_template_blank_cell(colspan) {
	return '<td colspan="' + colspan + '"></td>'
}

function ds_template_day(d, m, y) {
	return '<td class="ds_cell" onclick="ds_onclick(' + d + ',' + m + ',' + y + ')">' + d + '</td>';
	// Define width the day row.
}

function ds_template_main_below() {
	return '</tr>'
	     + '</table>';
}

// This one draws calendar...
function ds_draw_calendar(m, y) {
	// First clean the output buffer.
	ds_ob_clean();
	// Here we go, do the header
	ds_echo (ds_template_main_above(ds_monthnames[m - 1] + ' ' + y));
	for (i = 0; i < 7; i ++) {
		ds_echo (ds_template_day_row(ds_daynames[i]));
	}
	// Make a date object.
	var ds_dc_date = new Date();
	ds_dc_date.setMonth(m - 1);
	ds_dc_date.setFullYear(y);
	ds_dc_date.setDate(1);
	if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
		days = 31;
	} else if (m == 4 || m == 6 || m == 9 || m == 11) {
		days = 30;
	} else {
		days = (y % 4 == 0) ? 29 : 28;
	}
	var first_day = ds_dc_date.getDay();
	var first_loop = 1;
	// Start the first week
	ds_echo (ds_template_new_week());
	// If sunday is not the first day of the month, make a blank cell...
	if (first_day != 0) {
		ds_echo (ds_template_blank_cell(first_day));
	}
	var j = first_day;
	for (i = 0; i < days; i ++) {
		// Today is sunday, make a new week.
		// If this sunday is the first day of the month,
		// we've made a new row for you already.
		if (j == 0 && !first_loop) {
			// New week!!
			ds_echo (ds_template_new_week());
		}
		// Make a row of that day!
		ds_echo (ds_template_day(i + 1, m, y));
		// This is not first loop anymore...
		first_loop = 0;
		// What is the next day?
		j ++;
		j %= 7;
	}
	// Do the footer
	ds_echo (ds_template_main_below());
	// And let's display..
	ds_ob_flush();
	// Scroll it into view.
	ds_ce.scrollIntoView();
}

// A function to show the calendar.
// When user click on the date, it will set the content of t.
function ds_sh(t) {
	// Set the element to set...
	ds_element = t;
	// Make a new date, and set the current month and year.
	var ds_sh_date = new Date();
	ds_c_month = ds_sh_date.getMonth() + 1;
	ds_c_year = ds_sh_date.getFullYear();
	// Draw the calendar
	ds_draw_calendar(ds_c_month, ds_c_year);
	// To change the position properly, we must show it first.
	ds_ce.style.display = '';
	// Move the calendar container!
	the_left = ds_getleft(t);
	the_top = ds_gettop(t) + t.offsetHeight;
	ds_ce.style.left = the_left + 'px';
	ds_ce.style.top = the_top + 'px';
	// Scroll it into view.
	ds_ce.scrollIntoView();
}

// Hide the calendar.
function ds_hi() {
	ds_ce.style.display = 'none';
}

// Moves to the next month...
function ds_nm() {
	// Increase the current month.
	ds_c_month ++;
	// We have passed December, let's go to the next year.
	// Increase the current year, and set the current month to January.
	if (ds_c_month > 12) {
		ds_c_month = 1; 
		ds_c_year++;
	}
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}

// Moves to the previous month...
function ds_pm() {
	ds_c_month = ds_c_month - 1; // Can't use dash-dash here, it will make the page invalid.
	// We have passed January, let's go back to the previous year.
	// Decrease the current year, and set the current month to December.
	if (ds_c_month < 1) {
		ds_c_month = 12; 
		ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
	}
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}

// Moves to the next year...
function ds_ny() {
	// Increase the current year.
	ds_c_year++;
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}

// Moves to the previous year...
function ds_py() {
	// Decrease the current year.
	ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
	// Redraw the calendar.
	ds_draw_calendar(ds_c_month, ds_c_year);
}

// Format the date to output.
function ds_format_date(d, m, y) {
	// 2 digits month.
	m2 = '00' + m;
	m2 = m2.substr(m2.length - 2);
	// 2 digits day.
	d2 = '00' + d;
	d2 = d2.substr(d2.length - 2);
	// YYYY-MM-DD
//	return y + '-' + m2 + '-' + d2;
	return d2 + '/' + m2 + '/' + y;
}

// When the user clicks the day.
function ds_onclick(d, m, y) {
	// Hide the calendar.
	ds_hi();
	// Set the value of it, if we can.
	if (typeof(ds_element.value) != 'undefined') {
		ds_element.value = ds_format_date(d, m, y);
	// Maybe we want to set the HTML in it.
	} else if (typeof(ds_element.innerHTML) != 'undefined') {
		ds_element.innerHTML = ds_format_date(d, m, y);
	// I don't know how should we display it, just alert it to user.
	} else {
		alert (ds_format_date(d, m, y));
	}
}

/*******************Pop connexion*****************************************/
function ValidEnvoiMdpConnect()
{
 if(trim(document.getElementById("email_pwd_connect").value)!="")
 {
   NbError = 0;
   //on teste le format du mail
   if(controlerEmail(trim(document.getElementById("email_pwd_connect").value)) == false)
   {
     strMessage ="-Le format de l'adresse mail est incorrect.";
     NbError = NbError +1;

   }
   else
   {
       strUrlMail="/boutique/verif_email.jsp?mail="+document.getElementById("email_pwd_connect").value+"&envoi_mail=1";

       if(TestExistanceMail(strUrlMail) != "1")
       {
         strMessage ="-L'adresse mail saisie n'existe pas dans notre base de données.";
         NbError = NbError +1;
       }
   }
   if(NbError >0)
   {
       document.getElementById("div_error_Envoi").style.display = "block" ;
       document.getElementById("div_error_Envoi").innerHTML = "<br>"+strMessage +"<br><br><br>";
   }
   else
   {
     document.getElementById("div_error_Envoi").style.display = "none" ;
     document.getElementById("FormMdp").style.display ="none";
     document.getElementById("RetourEnvoi").style.display = "block" ;

   }
 }
}
function FermeDivConnect()
{
  document.getElementById("popUpConnect").style.display ="none";

}

function ValidEnvoiMdpConnectRevendeur()
{
 if(trim(document.getElementById("email_pwd_connect_rev").value)!="")
 {
   NbError = 0;
   //on teste le format du mail
   if(controlerEmail(trim(document.getElementById("email_pwd_connect_rev").value)) == false)
   {
     strMessage ="-Le format de l'adresse mail est incorrect.";
     NbError = NbError +1;

   }
   else
   {
       strUrlMail="/espace_revendeur/verif_mail_revendeur.jsp?mail="+document.getElementById("email_pwd_connect_rev").value+"&envoi_mail=1";

       if(TestExistanceMail(strUrlMail) != "1")
       {
         strMessage ="-L'adresse mail saisie n'existe pas dans notre base de données.";
         NbError = NbError +1;
       }
   }
   if(NbError >0)
   {
       document.getElementById("div_error_Envoi_rev").style.display = "block" ;
       document.getElementById("div_error_Envoi_rev").innerHTML = "<br>"+strMessage +"<br><br><br>";
   }
   else
   {
     document.getElementById("div_error_Envoi_rev").style.display = "none" ;
     document.getElementById("FormMdpRev").style.display ="none";
     document.getElementById("RetourEnvoiRev").style.display = "block" ;

   }
 }
}

function FermeDivConnectRev()
{
  document.getElementById("popUpConnectRev").style.display ="none";

}

function ExecuteRecupeResultat(url) {	
   xhr_object = getObjectHttp(url,false);    
   xhr_object.send(null);      
   if (xhr_object.readyState == 4) {
		 //document.getElementById("retour_fonction").value= xhr_object.responseText;  
		 retour = xhr_object.responseText;  		 
	   }  
   return retour;
   
      
}

function controlMajRevendeur()
{
	NbError = 0;
    msgError ="";
    if(trim(document.getElementById("email").value) == "")
     {
         NbError =NbError +1;
         msgError += "-Vous devez saisir votre adresse email.\n";
     }
    else
    {
     //on teste le format du mail
     if(controlerEmail(trim(document.getElementById("email").value)) == false)
     {
       msgError +="-Le format de l'adresse mail est incorrect.\n";
       NbError = NbError +1;
  
     }
    }
	
	if(trim(document.getElementById("code_promo").value) == "")
     {
         NbError =NbError +1;
         msgError += "-Vous devez saisir un code promo.\n";
     }
	 else
	 {
		//on test si le code promo existe
		strUrl="/maj_revendeur/verif_code.jsp?code="+document.getElementById("code_promo").value;

       if(ExecuteRecupeResultat(strUrl) != "")
       {
         msgError += ExecuteRecupeResultat(strUrl)+"\n";		 
         NbError = NbError +1;
       }
	 }
	
	
	if(NbError==0)
		return true;
	else
	{	
		alert(msgError);
		return false;
	}
	
}

function changeDiv(newDiv,OldDiv)
{	
	document.getElementById(newDiv).style.display = 'block';
	document.getElementById(OldDiv).style.display = 'none';
}

function AfficheCodePromo(bErreur,strMsg)
{
	
   document.getElementById("div_code_promo").style.display = 'block';
   if(bErreur =="1")
   {
	document.getElementById("erreur_promo").style.display = 'block';
	document.getElementById("erreur_promo").innerHTML =	strMsg;
 }
	else
	document.getElementById("erreur_promo").style.display = 'none';
}

function cacheDiv(nomDiv)
{
	if(document.getElementById(nomDiv))
   document.getElementById(nomDiv).style.display ="none";
}

function AfficheDiv(nomDiv)
{
	if(document.getElementById(nomDiv))
   document.getElementById(nomDiv).style.display = 'block';
}