/*#####################################################################################################
############################## JS DES FONCTIONS POUR LE MAGASIN  ####################################### 
/*##################################################################################################### */

/* Recherche du minimum entre nombre1 et nombre2 et affecte la date correspondant a ce minimum dans la variable dateAretenir */ 
function calculateMin(nombre1, nombre2, max, yearToReturnIfMin, monthToReturnIfMin, dayToReturnIfMin) { 
     if (nombre1 >= 0 && nombre1 < max && nombre1<nombre2) {   
            nombre2 = nombre1;                                    
            dateAretenir = yearToReturnIfMin+monthToReturnIfMin+dayToReturnIfMin;       
     }
    return(nombre2);   
}
/*###################################################################################################### */
/* Remplit la date de l ouverture exceptionnelle et rend visible le bloc */
function displayDate (formatDate, dateOpen, dateClose, eresa) {
    if (dateOpen!='' && dateClose!='' ){
    	if(dateOpen<=dateClose){
	   	setBlocByHtml('dateSpecialOpen',getDateAuFormat(formatDate,dateOpen.substring(6,8), dateOpen.substring(4,6), dateOpen.substring(0,4)));           
            		visibleBloc('titleSpecialOpen');
            		showBloc('titleSpecialOpen');
	    }
	    else {
	    	setBlocByHtml('dateSpecialClose',getDateAuFormat(formatDate,dateClose.substring(6,8), dateClose.substring(4,6), dateClose.substring(0,4)));       
           		visibleBloc('titleSpecialClose');
            		showBloc('titleSpecialClose');
	    }
    }
    else{
    	if (dateOpen!='' ) {                	                	          
	           setBlocByHtml('dateSpecialOpen',getDateAuFormat(formatDate,dateOpen.substring(6,8), dateOpen.substring(4,6), dateOpen.substring(0,4)));      
	            visibleBloc('titleSpecialOpen');
	            showBloc('titleSpecialOpen');
	    }
   
	    if (dateClose!='' ) {
	            setBlocByHtml('dateSpecialClose',getDateAuFormat(formatDate,dateClose.substring(6,8), dateClose.substring(4,6), dateClose.substring(0,4)));           
	            visibleBloc('titleSpecialClose');
	            showBloc('titleSpecialClose');
	    }
    }

    if (dateOpen=='' && dateClose=='' && eresa=='Y'){
        visibleBloc('titleEresa');
        if(parent.document.getElementById('storeBackHome')){
            document.getElementById("storeLienEresa").onclick = '';
            setHref("storeLienEresa",rootPath+"?popupInfo");
        }
        
        showBloc('titleEresa');
    }

}
/*###################################################################################################### */
    /* Variables globales utiles */
    debInterv = "";
    derJour = "";
    prev_startAm = "";
    prev_endAm = "";
    prev_startPm = "";
    prev_endPm = ""; 
    nbrInterv=0;
    stHo = "";   
    var periodeencours =false ;
/*###################################################################################################### */
/* Reinitialise les variables */
function reinitVars() {
    debInterv = "";
    derJour = "";
    prev_startAm = "";
    prev_endAm = "";
    prev_startPm = "";
    prev_endPm = ""; 
    nbrInterv=0;
}
/*###################################################################################################### */
/* Retourne l heure du hh:mm a partir de l heure passee en parametre du type hhmm */
function treateSimpleHour( hour ) {
    if (hour == 0)
        return "0"+sepMinutes+"00";
	if (hour == "")
        return "0"+sepMinutes+"00";
    if(hour.length ==2)
        hour='0'+hour;
    if (hour.length < 3) return hour;
    var h = hour.substring(0, hour.length-2);
    var m = hour.substring(hour.length-2 , hour.length);
    return h + sepMinutes + m;
}
/*###################################################################################################### */
/* Calule et retourne la periode (du type du jour_debut au jour_fin) et ses horaires */
function getStringHoraireGlobal( nomJour, start_am , end_am , start_pm , end_pm ) {
   var horairesAAfficher = "";
   
   if (start_am == "0" && start_pm == "0") {
    return '';
   }
   if (start_am == "" && start_pm == "") {
    return '';
   }

   if (nbrInterv == 0) {   		
      prev_startAm = start_am;
      prev_endAm = end_am;
      prev_startPm = start_pm;
      prev_endPm = end_pm;
      nbrInterv++;
      debInterv =nomJour;
      return '';
   }
   if (start_am != prev_startAm || end_am != prev_endAm || start_pm != prev_startPm || end_pm != prev_endPm) {

     	  if (nbrInterv == 1) {     	
	     	  	horairesAAfficher +=debInterv + " : " + getStringHoraire( prev_startAm , prev_endAm , prev_startPm , prev_endPm );
	     	  	reinitVars();
	     	  	nbrInterv = 0;
	     	  	getStringHoraireGlobal( nomJour, start_am , end_am , start_pm , end_pm );	     	  	
  	  	}
     	else {     
     	                            // Cas normal
     	                            if (affichageTexte == 1) {
     	  		    horairesAAfficher +=  duJour + " "+debInterv + " " + derJour + " : " + getStringHoraire( prev_startAm , prev_endAm , prev_startPm , prev_endPm );
     	  		}
     	  		// Pour HU le "du" est a la fin et colle au jour
     	  		else {
     	  		   horairesAAfficher +=  debInterv + " "+ duJour + " " + derJour + " : " + getStringHoraire( prev_startAm , prev_endAm , prev_startPm , prev_endPm );
     	  		}
     	  		debInterv = "";
  	   }  	  
      nbrInterv = 1;
      prev_startAm = start_am;
      prev_endAm = end_am;
      prev_startPm = start_pm;
      prev_endPm = end_pm;
      debInterv =nomJour;      
  }
  else {
	  nbrInterv++;
	    // Cas normal
     	   if (affichageTexte == 1) {
                     derJour = auJour+" "+ nomJour;
                 }
                  // Pour HU le "au" est a la fin et colle au jour
       	   else {
       	        derJour = nomJour+auJour;
                  }                 
  }
   return horairesAAfficher;
}
/*###################################################################################################### */
/* Retourne les horaires */
function getStringHoraire( start_am , end_am , start_pm , end_pm ) {
    var st = "";

   if (start_am == "" || start_am == end_pm) {
      return st;
   }
   
   if(magOuvert == 0) st += '<br/>';
   
   if ((end_am == "" && end_pm != "") || (end_am == start_pm)) {             
   	    st += treateSimpleHour( start_am ) + " " + sepHoraire + " " + treateSimpleHour( end_pm );   	
   	return st + "<br/>";
   }
   
   if(start_am == end_am && start_pm != end_pm) {             
   	    st += treateSimpleHour( start_pm ) + " " + sepHoraire + " " + treateSimpleHour( end_pm );   	
   	return st+ "<br/>";
   }
   if(start_am != end_am && start_pm == end_pm) {             
   	    st += treateSimpleHour( start_am ) + " " + sepHoraire + " " + treateSimpleHour( end_am );   	
   	return st+ "<br/>";
   }
   
   
    st += treateSimpleHour( start_am ) + " " + sepHoraire + " " + treateSimpleHour( end_am );
    st += " " + sepTrancheHoraire + " " + treateSimpleHour( start_pm ) + " " + sepHoraire + " " + treateSimpleHour( end_pm ) + "<br/>";	
   return st;
}
/*###################################################################################################### */
/* Affiche la periode (du type du jour_debut au jour_fin) et ses horaires */
function finListeHoraire( ) {
   if (nbrInterv > 0) {
   	  if (nbrInterv == 1) {
   	  	stHo += debInterv + " :  " + getStringHoraire( prev_startAm , prev_endAm , prev_startPm , prev_endPm );
   	  }
   	  else {
   	                 // Cas normal
     	               if (affichageTexte == 1) {
   	  	    stHo += duJour+" "+debInterv + " "+ derJour + " : " + getStringHoraire( prev_startAm , prev_endAm , prev_startPm , prev_endPm );
   	  	  }
                              // Pour HU le "du" est a la fin et colle au jour
                   	   else {
                   	        stHo += debInterv + " "+ duJour+ " "+ derJour + " : " + getStringHoraire( prev_startAm , prev_endAm , prev_startPm , prev_endPm );
                              }    
   	  }
   }
}
/*###################################################################################################### */
/* Retourne le libelle et les dates de la periode ete ou hiver */
function getWinterAndSpringDates(libellePeriode, formatDate, jour_deb, mois_deb, annee_deb, jour_fin, mois_fin, annee_fin) {
    var st="";     

   periodeencours = dateIsInPeriode(jour_deb, mois_deb, annee_deb, jour_fin, mois_fin, annee_fin);
    if(periodeencours){
        	//cas normal
        if(affichageTexte==1){
	        st += '<b>'+libellePeriode+'</b>';
	        st +='<i>&nbsp;('+du+'&nbsp;';
	        st += getDateAuFormat(formatDate, jour_deb, mois_deb, annee_deb);    
	        st += '&nbsp;'+au+'&nbsp;';
	        st += getDateAuFormat(formatDate, jour_fin, mois_fin, annee_fin);    
	        st += ')&nbsp;:</i><br/>';     
        	}
        else{
            	//cas HU
	        st += '<b>'+libellePeriode+'</b>';
	        st +='<i>&nbsp;('+getDateAuFormat(formatDate, jour_deb, mois_deb, annee_deb)+'&nbsp;';
	        st += du;    
	        st += '&nbsp;'+getDateAuFormat(formatDate, jour_fin, mois_fin, annee_fin)+'&nbsp;';
	        st += au;    
	        st += ')&nbsp;:</i><br/>';
	        }
        return st;
    }
      return "";
}

// Verifie si la date du jour est comprise entre la date de debut et la date de fin
function dateIsInPeriode(jour_deb, mois_deb, annee_deb, jour_fin, mois_fin, annee_fin){
    var dateDepart = new Date(annee_deb, mois_deb, jour_deb).getTime();
    var dateDuJour = new Date().getTime();
    // Si il n y a pas de date de fin, la date de fin vaut la date du jour
    var dateFin = dateDuJour;
    if(annee_fin) dateFin = new Date(annee_fin, mois_fin, jour_fin).getTime();
    
    if(dateDuJour >= dateDepart && dateDuJour <= dateFin) return true;
    return false;
}

/*###################################################################################################### */
/* Retourne les dates du trocathlon */
function getEventDates(formatDate, jour_deb, mois_deb, annee_deb, jour_fin, mois_fin, annee_fin) {
    var st = "";  
    if (jour_deb==jour_fin && mois_deb==mois_fin && annee_deb==annee_fin) {
        st += le+'&nbsp;';
        st += getDateAuFormat(formatDate, jour_deb, mois_deb, annee_deb);   
    }
    else {
      	//cas normal
    	if(affichageTexte==1){
	    	st += du+'&nbsp;';
		st += getDateAuFormat(formatDate, jour_deb, mois_deb, annee_deb);    
		st += '&nbsp;'+au+'&nbsp;';
		st += getDateAuFormat(formatDate, jour_fin, mois_fin, annee_fin);
    		}
    	//cas HU
    	else{   
		st += getDateAuFormat(formatDate, jour_deb, mois_deb, annee_deb)+'&nbsp;';
		st += du;    
		st += '&nbsp;'+getDateAuFormat(formatDate, jour_fin, mois_fin, annee_fin)+'&nbsp;';
		st += au;   
    	}
    }
    return st;
}
/*###################################################################################################### */
/* Retourne la description et les dates de l evenement en cours ou futur 
    typeEvent = type d evenement : en cours ou futur car le test sur diffDateFin est legerement different 
    titre = champ titre de l evenement
    formatDate = constante pour le type d affichage de la date
    annee1, mois1, jour1 = annee, mois, jour a comparer avec la date du jour
    annee2, mois2, jour2 = annee, mois, jour a comparer avec la date du jour
    annee_deb, mois_deb, jour_deb = annee, mois, jour de debut de l evenement a afficher
    annee_fin, mois_fin, jour_fin = annee, mois, jour de fin de l evenement a afficher
*/
function getEventDescription(typeEvent,titre,formatDate,annee1, mois1, jour1, annee2, mois2, jour2, annee_deb, mois_deb, jour_deb, annee_fin, mois_fin, jour_fin) {
    var st = "";      
    var typeTest = '';
    diffDateDebut=compareDate(new Date(annee1, mois1, jour1), new Date(new Date().getFullYear(), new Date().getMonth()+1, new Date().getDate()));
    diffDateFin=compareDate(new Date(annee2, mois2, jour2), new Date(new Date().getFullYear(), new Date().getMonth()+1, new Date().getDate()));
    
    if (typeEvent=='typeCurrent') {
        typeTest = diffDateFin >= 0;
        }
    else {
        typeTest =  diffDateFin > 0;
    }
    
    if (diffDateDebut <=0 && typeTest) {   
        var dateDebut = getDateAuFormat(formatDate, jour_deb, mois_deb, annee_deb);
        var dateFin = getDateAuFormat(formatDate, jour_fin, mois_fin, annee_fin);        
        if (dateDebut==dateFin) {
            st += le+'&nbsp;'+dateDebut;                                                        
        }
        else {
            //cas normal
        	if(affichageTexte==1){
            		st += du+'&nbsp;'+dateDebut+'&nbsp;'+au+'&nbsp;'+dateFin;
            		}
            		//cas HU
            		else{
            			st += dateDebut+'&nbsp;'+du+'&nbsp;'+dateFin+'&nbsp;'+au;
            		}                                                                      
        }
       if (titre!=''){                                                       
            st +='<br/>'+titre;
       }
    }       
    return st;
}
/*###################################################################################################### */
/* Remplit et affiche le bloc evenement en cours ou evenement futur */ 
function displayEvent(idEvent, descriptionEvent, idBlocEvent) {
      if (descriptionEvent!='') {        
            setBlocByHtml(idEvent,descriptionEvent);
            showBloc(idBlocEvent);
      }
}
/*###################################################################################################### */
/* Affiche les 2 blocs adequats sur les 4 possibles : evenement en cours ou/et evenement futur ou/et sports suivis et/ou ecoute client */
function displayEventsOrSports() {
    if(typeof descriptionCurrentEvent != 'undefined'){
        if (descriptionCurrentEvent=='') {
            if (descriptionFuturEvent=='') {
                changeBlocClass('sport-suivi','bloc2');
                if(contactStore==1 && boolNom==1){
                    showBloc('store-contact');
                 }
                 showBloc('sport-suivi');
            }
            else {
                changeBlocClass('futur-store-event','bloc2');
                displayEvent('futurEvent',descriptionFuturEvent, 'futur-store-event');
                if(contactStore==1 && boolNom==1) showBloc('store-contact');
                else showBloc('sport-suivi');
            }                                    	
        }
        else {
            displayEvent('currentEvent',descriptionCurrentEvent, 'current-store-event');           
            if (descriptionFuturEvent=='') {
                if(contactStore==1 && boolNom==1) showBloc('store-contact');
                else showBloc('sport-suivi');
            }
            else {
                displayEvent('futurEvent',descriptionFuturEvent, 'futur-store-event');
                if(contactStore==1 && boolNom==1) showBloc('store-contact');
            }
        }
    }
}
/*###################################################################################################### */
var idOngletActif='';
var idContenuOngletActif='';
/*###################################################################################################### */
/* 1. Rend visible les onglets dont le contenu n est pas vide 
   2. Calcule la hauteur du contenu des onglets magasin
    3. Ajoute la classe actif sur le bon onglet : 
    - si texte onglet-services-magasin ou onglet-sports en param dans l url (clic lien depuis HP connectee): selectionne cet onglet 
    - sinon : selectionne 1er onglet dont le contenu n est pas vide */
function initStoreOnglets(nameDept){
      invisibleBloc('mag-onglets'); // Cache le menu pendant la mise en forme
	var TabElementLI = $c($n('mag-onglets','LI')) // Recherche les LI enfant du UL
	var TabElementSpanCentre = new Array();
	var x = 0;	
	var firstSpanGauche = false;
	var paramUrl = window.parent.location.search;
	paramUrl = paramUrl.substring(paramUrl.indexOf('=')+1,paramUrl.length);
	var auMoinsUnContenu = false;
	/* Rend visible les onglets dont le contenu n est pas vide et ajoute la classe actif sur le bon onglet */
	for(var i in TabElementLI){
	                var idStoreOnglet = TabElementLI[i].id;
	                var idStoreContenuOnglet = idStoreOnglet.substring(idStoreOnglet.indexOf('-')+1,idStoreOnglet.length);
	                /* Si le contenu de l onglet n est pas vide */
                                if ($n(idStoreContenuOnglet).innerHTML!='') {
                                    auMoinsUnContenu = true;
                                        // Rend visible l onglet
                                        showBloc(idStoreOnglet);
                                        
                                        var TabElementA = $c($n(TabElementLI[i],'A')); // Recherche les A enfant du LI
		           for(var j in TabElementA){
			var TabElementSPAN = $c(TabElementA[j],'SPAN'); // Recherche les SPAN enfant du A
			for(var k in TabElementSPAN){
				if( TabElementSPAN[k].className.toLowerCase().indexOf('centre') != -1 ){
					if( TabElementSPAN[k].offsetHeight > 32 ){
						TabElementSPAN[k].className = AddClassName(TabElementSPAN[k].className, 'lignes2');
					}
				}
				// Classe particuliere sur le span gauche du 1er onglet dont le contenu n est pas vide
				if( TabElementSPAN[k].className.toLowerCase().indexOf('gauche') != -1 ){
				     if (!firstSpanGauche && $n(idStoreContenuOnglet).innerHTML!='') {
				        TabElementSPAN[k].className = AddClassName(TabElementSPAN[k].className, 'premier');
				        firstSpanGauche = true;
				    }
				}
			}
		           }
		           
                                        // Activation de l onglet-services-magasin ou onglet-sports en param dans l url et contenu associe                                        
                                        if (paramUrl==idStoreOnglet) {
                                                 selectOnglet(idStoreOnglet,idStoreContenuOnglet);                  
                                        }
                                        // Activation 1er onglet par defaut et contenu associe
                                        else  if (idOngletActif=='' ){
                                               $n(idStoreOnglet).className = AddClassName($n(idStoreOnglet).className, 'actif');                                               
                                               showBloc(idStoreContenuOnglet);      
                                               idOngletActif=idStoreOnglet;  	
                                               idContenuOngletActif=idStoreContenuOnglet;
                                        }
                                   }
	}
            if(auMoinsUnContenu){
                visibleBloc('mag-onglets'); // affiche le menu apres la mise en forme
                showBloc('magasinconteneur');
            }
}
/*###################################################################################################### */
/* Supprime classe actif de l ancien onglet clique et cache le contenu de l ancien onglet clique 
et ajoute classe actif  a l onglet clique et montre le contenu associe a  l onglet clique */
function selectOnglet(idOnglet, idContenuOnglet){
            if($n(idOngletActif) && $n(idContenuOngletActif)){
                $n(idOngletActif).className = DeleteClassName($n(idOngletActif).className, 'actif');
                hideBloc(idContenuOngletActif);
                }
            idOngletActif=idOnglet;  	
            idContenuOngletActif=idContenuOnglet;
            if($n(idOngletActif) && $n(idContenuOngletActif)){
                $n(idOngletActif).className = AddClassName($n(idOngletActif).className, 'actif');
                 showBloc(idContenuOngletActif);
            }
            defineIframeHeight("store-iframe",false);
}
/*###################################################################################################### */
/* Remplissage des infos pour le plan d acces declare dans la page region mais rempli par la page magasin */
function storeAccesPlan() {
    
    
    if (parent.document.getElementById('region-acces-plan') && document.getElementById('store-acces-plan')) {
        parent.document.getElementById('region-acces-plan').innerHTML=document.getElementById('store-acces-plan').innerHTML;
    }                        
    else {
        if (document.getElementById('region-acces-plan') && document.getElementById('store-acces-plan')) {
            document.getElementById('region-acces-plan').innerHTML=document.getElementById('store-acces-plan').innerHTML;
         }
    }
    parent.document.getElementById('urlMapo').src=urlMaporama;
    show_filter('filter');
    show_popup('region-acces-plan');
}
/*###################################################################################################### */
/* Si on tape directement l url du magasin on montre le bloc storeBackHome contenant le logo pointant sur la HomePage */
function showBlocBackToHome() {
    if(parent.document.getElementById('pavemagasin')) {
            showBloc('storeBackHome');
     }     
}