/*fichier javascript pour le site 2moucherolles*/
var countDiap1; //variable pour le fondu enchainé diapo
countDiap1=0;
var tableImages1; //variable de type tableau contenant les images du fondu enchainé
/**********************************************************************************************
 creation de la fonction changeImage qui permet de changer la source d'une image
 entree : String nom de la balise image,String la nouvelle source
 ***********************************************************************************************/
  function changeImage(lenom,src)
 	{	
 		
		if (document.all)
		{
	 	document.all[lenom].filters.blendTrans.Apply();
		document.all[lenom].src=src;
		document.all[lenom].filters.blendTrans.Play();
		}
		else
		{
		document.getElementById(lenom).src=src;
		}
		
	}
/**************************************************************************************************
fonctions diaporama qui permettent de faire un diaporama de 2 ou plusieurs photos*
entree : String nom de la balise <img>, le tableau contenant les images du diaporama
**************************************************************************************************/
function diaporama(nomImage,tabImage)
  {
  	if(document.getElementById(nomImage)!=null)
  	{
	  	countDiap1++;
		tableImages1=tabImage;
		if(countDiap1==tableImages1.length) countDiap1=0;
		changeImage(nomImage,tableImages1[countDiap1].src);
		setTimeout("diaporama('"+nomImage+"',tableImages1)",12000);
  	}
  }
//fct de vérification du formulaire
function verif_formulaire()
	{
		
		if(document.forms["formulaire"].elements["mail"].value=="")
		 	{
				alert ("Merci d'indiquer votre mail ");
				document.forms["formulaire"].elements["mail"].focus();
		 		return false;
			}
		else
			{
				return true;
			}
	}
/********************************************************************************
fonctions pour defilement du texte dans la gazette
*********************************************************************************/
var scrolltimer;  
function initScroll(BlockId, speedScroll, pxIncrement, TimeOver, incrementOver) {  
            	var MonObjet = document.getElementById(BlockId);  
             //On rajoute des éléments par défaut sur le block à scroller, ces div  
             //prennent la hauteur de la boite, comme ça on garde un effet qui eviter de faire apparaitre  
             //le texte trop vite  
            	var topDiv = MonObjet.insertBefore(document.createElement("DIV"),MonObjet.firstChild);  
             	topDiv.style.height = MonObjet.clientHeight + "px";  
             	var bottomDiv = MonObjet.appendChild(document.createElement("DIV"));  
             	bottomDiv.style.height = MonObjet.clientHeight + "px";  
             	MonObjet.onmouseover = function(){  
                 clearTimeout(scrolltimer);  
                 scrollBlock(BlockId, TimeOver, incrementOver, TimeOver, incrementOver);  
             	}  
            	MonObjet.onmouseout = function(){  
                 clearTimeout(scrolltimer);  
                 scrollBlock(BlockId, speedScroll,pxIncrement, TimeOver, incrementOver);  
             	}  
             scrollBlock(BlockId,speedScroll,pxIncrement);  
         }  
          
         function scrollBlock(BlockId,TimeScroll,pxIncrement){  
             var monObjet = document.getElementById(BlockId)  
            if (TimeScroll=='' | TimeScroll==null | TimeScroll <= 0) TimeScroll = 40;  
             if (pxIncrement=='' | pxIncrement==null | pxIncrement <= 0) pxIncrement = 1;  
             //ScrollTop = ScrollTop + speed;  
             monObjet.scrollTop = monObjet.scrollTop + pxIncrement;  
             if (monObjet.scrollTop >= monObjet.scrollHeight-monObjet.clientHeight) monObjet.scrollTop = 1;  
             scrolltimer = setTimeout("scrollBlock('"+ BlockId + "'," + TimeScroll + "," + pxIncrement +")", TimeScroll);  
         }  
    
 /**************************************************************************************************************************
 creation de la fonction javascript qui permet l'affichage du popup pour le choix des dates stages 
 ouvreFenDateStage(lidStage,ladesignation)
 @param:l'id du stage,ladesignation du stage
 @return:le nom de la fenetre fille
 ***************************************************************************************************************************/
 function ouvreFenDateStage(lidstage,ladesignation){
 			window.open('index.php?action=ouvreCalStage&stage='+lidstage+'&designation='+ladesignation+'','fenetreStage','toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,width=450,height=300,top=0,left=0');
 }
     
         
// fonction pour le highlignt de la ligne de table
function setPointer(theRow, thePointerColor)
{
    if (typeof(theRow.style) == 'undefined' || typeof(theRow.cells) == 'undefined') {
        return false;
    }
    var row_cells_cnt = theRow.cells.length;
    for (var c = 0; c < row_cells_cnt; c++) {
        theRow.cells[c].bgColor = thePointerColor;
    }
    return true;
} 
/****************************************************************************************************************************
Fonction repris telle quelle sur l'ancien site pour valider le formulaire de preinscription
*****************************************************************************************************************************/
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' doit contenir une adresse mail.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' doit contenir un nombre.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' doit contenir un nombre entre '+min+' et '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' est nécessaire.\n'; }
  } if (errors) alert('Les erreurs suivantes ont été trouvées:\n'+errors);
  document.MM_returnValue = (errors == '');
}
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;
}
/*******************************************************************************************************************************
fonction pris telle quelle sur l'ancien pour charger un enouvelle page depuis un pop up
*******************************************************************************************************************************/
function load(file,target) {
    if (target != '')
        target.window.location.href = file;
		
    else
        window.location.href = file;
		window.close();
}
/*******************************************************************************************************************************
fonction qui permet d'afficher les infos d'un stage dans le pop up stage
@param:l'id du div , l'info à afficher
*******************************************************************************************************************************/
function voirInfo(lidDiv,linfo){
	
	if (document.getElementById)
	{	
		
		document.getElementById(lidDiv).innerHTML=linfo;
		document.getElementById(lidDiv).style.display="block";
	}
	if(document.all)
	{
		document.all[lidDiv].innerHTML=linfo;
		document.all[lidDiv].style.display="block";
	}
}
/******************************************************************************************************************************
fonction pour cacher le div
********************************************************************************************************************************/
function cacheInfo(lidDiv){
	if (document.getElementById)
	{	
		document.getElementById(lidDiv).style.display="none";
	}
	if(document.all)
	{
		document.all[lidDiv].style.display="none";
	}
}
/**************************************************************************************************
creation de la fonction permettant l'utilisation de XMLHttpRequest pour utilisation de la techno Ajax
pour choisir la photo à afficher dans le diaporama. Cette photo est choisie via un script php : class photos dans admin et fct choixDiap()
***************************************************************************************************/
function choixDiap(lesujet){
	if(lesujet==undefined) lesujet='nan';
	var url="index.php?"
	var data="action=choisiPhoto&sujet="+lesujet;
	var xmlHttp;
	if(document.all)
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	else
	{
		xmlHttp=new XMLHttpRequest();
		try
		{
			netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
		}
		catch(e)
		{
			
		}
	}
	xmlHttp.open ("POST",url,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
	xmlHttp.send(data);
	xmlHttp.onreadystatechange=function(){
		if(xmlHttp.readyState==4)
		    //alert(xmlHttp.responseText);
			eval(xmlHttp.responseText);
	}
	
}
/**verification formulaire pour acaht cadeau avec CB***/
function verif_formulaireCB()
	{
		if((document.forms["formulaire"].elements["biplace"].checked==false)&&(document.forms["biplacePerf"].elements["Jdecouverte"].checked==false)&&(document.forms["formulaire"].elements["Jdecouverte"].checked==false)&&(document.forms["formulaire"].elements["Sdecouverte"].checked==false)&&(document.forms["formulaire"].elements["nomPrest"].value==''))
		 	{
				alert ("Vous n'avez fait aucun choix!! Merci de faire votre choix ");
		 		return false;
			}
		if(document.forms["formulaire"].elements["nom"].value=="")
		 	{
				alert ("Merci d'indiquer le nom du bénéficiaire ");
				document.forms["formulaire"].elements["nom"].focus();
		 		return false;
			}
		if(document.forms["formulaire"].elements["prenom"].value=="")
		 	{
				alert ("Merci d'indiquer le prénom du bénéficiaire ");
				document.forms["formulaire"].elements["prenom"].focus();
		 		return false;
			}
		if(document.forms["formulaire"].elements["nomQui"].value=="")
		 	{
				alert ("Merci d'indiquer le nom du destinataire ");
				document.forms["formulaire"].elements["nomQui"].focus();
		 		return false;
			}
		if(document.forms["formulaire"].elements["prenomQui"].value=="")
		 	{
				alert ("Merci d'indiquer le prénom du destinataire ");
				document.forms["formulaire"].elements["prenomQui"].focus();
		 		return false;
			}
		if(document.forms["formulaire"].elements["adresse1"].value=="")
		 	{
				alert ("Merci d'indiquer l'adresse du destinataire ");
				document.forms["formulaire"].elements["adresse1"].focus();
		 		return false;
			}
		if(document.forms["formulaire"].elements["zip"].value=="")
		 	{
				alert ("Merci d'indiquer le code postal du destinataire ");
				document.forms["formulaire"].elements["zip"].focus();
		 		return false;
			}
		if(document.forms["formulaire"].elements["ville"].value=="")
		 	{
				alert ("Merci d'indiquer la ville du destinataire ");
				document.forms["formulaire"].elements["ville"].focus();
		 		return false;
			}
		
		if(document.forms["formulaire"].elements["numCB"].value=="")
		 	{
				alert ("Merci d'indiquer votre numero de Carte Bleue ");
				document.forms["formulaire"].elements["numCB"].focus();
		 		return false;
			}
		if(document.forms["formulaire"].elements["nomPorteur"].value=="")
		 	{
				alert ("Merci le nom du porteur de la carte bleue ");
				document.forms["formulaire"].elements["nomPorteur"].focus();
		 		return false;
			}
		if(document.forms["formulaire"].elements["crypto"].value=="")
		 	{
				alert ("Merci d'indiquer le cryptogramme ");
				document.forms["formulaire"].elements["crypto"].focus();
		 		return false;
			}
	
		if(document.forms["formulaire"].elements["mail"].value=="")
		 	{
				alert ("Merci d'indiquer une adresse mail pour pouvoir vous envoyer un AR de votre commande ");
				document.forms["formulaire"].elements["mail"].focus();
		 		return false;
			}
		if(document.forms["formulaire"].elements["telCB"].value=="")
		 	{
				alert ("Merci d'indiquer un telephone pour pouvoir vous contacter en cas de probléme ");
				document.forms["formulaire"].elements["telCB"].focus();
		 		return false;
			}
		else
			{
				return true;
			}
	}
/*############################################################################################################################################
Fonctions javascript permettant la gestion du panier pour la boutique
S'appuie sur la bibliothéque mootools
/*#############################################################################################################################################
/********************************************************************************************************************************************
mise en place des evenements sur les div en paticuliers pour la boutique
*********************************************************************************************************************************************/
/*window.addEvent('domready', function() {
	
	var myVerticalSlide = new Fx.Slide('formCoord');
	myVerticalSlide.slideOut();
	
	$('lienForm').addEvent('click', function(e){
		e.stop();
		myVerticalSlide.slideIn();
	});
	
});*/

/**********************************************************************************************************************************************
fonction calculCoutCommande()
permet de calacluer le cout toal des articles avant le port
@params
@return:int cout taotal des articles
**********************************************************************************************************************************************/
function calculCoutCommande(){
	var tot=0;
	$$('.pxTot').each(function(el){
		var px = el.get('html');
		tot=tot + px.toInt();
	})
	return tot;
}
/**********************************************************************************************************************************************
fonction calculpxArticlesQt()
permet de calacluer le cout d'une ligne d'articles en fonction de la qt
@params:ID du champ input concerné et le prix unitaire et IDmodele pour la mise à jour dans la table
@return:int cout 
**********************************************************************************************************************************************/
function calculpxArticlesQt(IDinput,pxUnit,IDmodele,copixurl){
	var laQt=$(IDinput).get('value');
	var totqt=pxUnit*laQt;	
	
	//je fais la mise à jour dans la base
	new Request.HTML({
	url:copixurl+'/index.php?module=e-commerce&action=majQte&qt='+laQt+'&IDmodele='+IDmodele,
	update : $("pxPort"),
	async: false
	}
	).send();
	
	return totqt;
}
/*****************************************************************************************************************************************************
fonction majQTE(id du chexkbox)^permet la mise à jour de la quantité suivant si on selectionne ou deseletionne ce checkBox
parametre indice de la ligne
**************************************************************************************************************************************************/
function majQTE(indice){
	var checkBox=$('del'+indice).get('value');
	if(checkBox=='on'){ 
		$('qte'+indice).value=0;
	}
	else
	{
		$('qte'+indice).value=1;
	}
}
/******************************************************************************************************************************************************
fonction verif_formulairePanier() permet de verifier que le champ mail est bien rempli
*****************************************************************************************************************************************************/
function verif_formulairePanier(){
	alert('ATTENTION : Pour que votre commande soit correctement enregistrée, votre navigateur doit accepter les cookies; Aprés votre paiement vous devez recevoir votre bon de commande dans le mail que vous avez fourni. Si celui ci est incorrect ou incomplet contactez au plus vite notre ecole.');
	if($('nom').get('value')=="")
		 	{
				alert ("Merci d'indiquer votre nom ");
				$('nom').focus();
		 		return false;
			}
	if($('prenom').get('value')=="")
		 	{
				alert ("Merci d'indiquer votre prenom ");
				$('prenom').focus();
		 		return false;
			}
	if($('adress').get('value')=="")
		 	{
				alert ("Merci d'indiquer votre adresse ");
				$('adress').focus();
		 		return false;
			}
	if($('zip').get('value')=="")
		 	{
				alert ("Merci d'indiquer le code postal ");
				$('zip').focus();
		 		return false;
			}
	if($('ville').get('value')=="")
		 	{
				alert ("Merci d'indiquer votre ville ");
				$('ville').focus();
		 		return false;
			}
	
	if(($('phone').get('value')=="") && ($('mobile').get('value')==""))
		 	{
				alert ("Merci d'indiquer un telephone portable ou fixe ");
				$('phone').focus();
		 		return false;
			}
	if($('email').get('value')=="")
		 	{
				alert ("Merci d'indiquer votre mail ");
				$('email').focus();
		 		return false;
			}
	if($('validCGV').checked==false)
		 	{
				alert ("Vous devez valider les conditions générales de vente ");
				
		 		return false;
			}
	else{
		return true;
	}
	
}
/***************************************************************************************************************************************************
fonction voirSsMenu(ID du sous menu) permet affichage des sous familles d'article
@params : ID du sous menu
****************************************************************************************************************************************************/
function voirSsMenu(ID){
	$(ID).style.display="block";
}

function cacherLesAutres(){
	$$('.sousMenu').each(function(el){
		el.style.display='none';
	})
}
/***************************************************************************************************************************************************
fonction validPromo(codePromo) permet de valider un code promo 
@params : le code promo
****************************************************************************************************************************************************/
function validPromo(codePromo){
	new Request.HTML({
	url:'http://www.prevol.com/index.php?module=e-commerce&action=verifPromo&promo='+codePromo
	}
	).send();
}
/*****************************************************************************************************************************************************
fonction majChampPanier : permet de mettre à jour le schamps du panier lors d'une modification de la quantité d'un article
@params: Id du champ px total, l'ID du champ qte, le px unit du modele , l'ID du modele
*****************************************************************************************************************************************************/
function majChampPanier(IDchampPxTot,IDqte,pxUnit,IDmodele,copixurl){
	// je MAJ mes prix que lorsque ma quantité n'est pas nulle. Cela empêche un calcul qi l'utilisateur change de valeur en la supprimant d'abord puis en la ressaisissant
	if ($(IDqte).get('value')!=""){
		var contenu=calculpxArticlesQt(IDqte,pxUnit,IDmodele,copixurl)+' &euro;'
		$(IDchampPxTot).set('html',contenu);
		var coutCmde=calculCoutCommande();
		$('pxTotal').set('html',coutCmde+' &euro;');
		var Tt =$('pxTotal').get('html').toInt()+ $('pxPort').get('html').toInt();
		$('totApayer').set('html',Tt+' &euro;');
	}
}
/********************************************************************************************************************************************
fonction voirCacherDescArticle(l'ID contenant le descriptif d'un article)
Permet de gérer affichage ou non d'un descriptif d'article
@param: ID du div contentant le descriptif de l'article
 ********************************************************************************************************************************************/
function voirCacherDescArticle(IDdiv){
	
	if($(IDdiv).style.display=='block'){
		$(IDdiv).style.display='none';}
		else
		{
		$(IDdiv).style.display='block';}
	}
/****************************************************************************************************************************************
fonction ajoutArticle(IDcomboArticle,sessionCommande,sujet)
permet d'ajouter une ligne de commande à partir du choix dans le combo des modeles existants pour un article
@param: l'identifiant du combo qui affiche les modéles, la session de la commande si il existe déjà un modele commandé, la famille ou sujet
****************************************************************************************************************************************/
function ajoutArticle(IDcombo,sessionCmde,sujet){
	//alert("../index.php?module=e-commerce&action=ajoutCmde&idModele="+$(IDcombo).value+"&cmde="+sessionCmde+"&typ="+sujet);
	window.location="../index.php?module=e-commerce&action=ajoutCmde&idModele="+$(IDcombo).value+"&cmde="+sessionCmde+"&typ="+sujet;
}

