/*#####################################################################################################
############################## 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' && (parent.getSwitchSite('BOOKING') == null || parent.getSwitchSite('BOOKING') && parent.getSwitchMagasin('FLAG_BOOKABLE'))) {
        showTitleEresa = true;
        if (parent.getSwitchSite('BOOKING')) {
            visibleBloc('titleEresa');
            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){
    // Pour l obj DATE, janvier = 0
    var dateDepart = new Date(annee_deb, mois_deb - 1, 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 - 1, 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 || 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,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 - 1, jour1), new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()));
    diffDateFin=compareDate(new Date(annee2, mois2 - 1, jour2), new Date(new Date().getFullYear(), new Date().getMonth(), 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 || annee_fin == '') {
            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;
            		}                                                                      
        }
    }       
    return st;
}
/*###################################################################################################### */
/* Remplit et affiche le bloc evenement en cours ou evenement futur */ 
function displayEvent(idBloc, descriptionEvent, idBlocEvent) {
    var visuel = visuels[idBloc][0];
    var commentVisuel = visuels[idBloc][1];
    if(visuel) {
        if(visuel.substr(visuel.lastIndexOf('.') + 1) == 'swf') {
            var soFlashEvt = new SWFObject(fichiersPath + '/' + visuel, "so-flash-evt-" + idBloc, "236", "109", "9", "FFFFFF");
            
            soFlashEvt.addParam("scale","noscale");
            soFlashEvt.addParam("quality","high");
            soFlashEvt.addParam("allowScriptAccess","always");
            soFlashEvt.addParam("wmode","opaque");
            
            soFlashEvt.write("flashEvt-" + idBloc);
            
            changeBlocClass("visuEvt-" + idBloc, "visuel flash");
            showBloc("conteneurFlashEvt-" + idBloc);
        }
        else {
            setSrc("imgEvt-" + idBloc,fichiersPath + '/' + visuel);
            showBloc("imgEvt-" + idBloc);
        }
        changeBlocClass("ficheEvt-" + idBloc, "fiche img");
        showBloc("visuEvt-" + idBloc);
    }
    
    setBlocByHtml('dateEvt-' + idBloc,descriptionEvent);
    if(commentaires[idBloc]) {
        setBlocByHtml('commentEvt-' + idBloc,commentaires[idBloc]);
        showBloc('commentEvt-' + idBloc);
    }
    
    showBloc(idBlocEvent,'inline');
}
/*###################################################################################################### */
/* Affiche les 2 blocs adequats sur les 3 possibles : evenement en cours ou/et evenement futur ou/et sports suivis */
function displayEventsOrSports() {
    if(typeof descriptionCurrentEvent != 'undefined') {
        if (descriptionCurrentEvent == '' || descriptionFuturEvent == '') {
            if(descriptionCurrentEvent == '' && descriptionFuturEvent == '') changeBlocClass('sport-suivi','bloc-evt first');
            showBloc('sport-suivi','inline');
        }
        if (descriptionCurrentEvent != '') displayEvent('0',descriptionCurrentEvent,'current-store-event');
        if (descriptionFuturEvent != '') {
            displayEvent('1',descriptionFuturEvent,'futur-store-event');
            if(descriptionCurrentEvent == '') changeBlocClass('futur-store-event','bloc-evt first');
        }
    }
    defineIframeHeight('zoneMagasinHP',false);
}
/*###################################################################################################### */
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 firstOnglet = true;
	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;
                                    // Classe particuliere sur le span gauche du 1er onglet dont le contenu n est pas vide
                	     if (firstOnglet) {
                	        TabElementLI[i].className = 'premier';
                	        firstOnglet = false;
                	    }
                                    
                                        // 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');
					}
				}
			}
		           }
		           
                                        // 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);
            }
}
/*###################################################################################################### */
/* Affichage de la popup contenant le plan d acces */
function storeAccesPlan() {
    document.getElementById('em-carte').appendChild(document.getElementById('store-acces-plan'));
    document.getElementById('urlMapo').src = urlMaporama;
    show_filter('filter');
    show_popup('store-acces-plan');
}

/*###################################################################################################### */
/* Mail client vendeur - affichage du lien */
function mcvStorePageLink(iIdStoreViewed) {
    // Le magasin visualise propose le service
    if (_mcvIsProposed(iIdStoreViewed)) showBloc("storeContact");
}


/*###################################################################################################### */
/* Eresa button action */
function siAction(_sStoreNum) {

    // BE : spec pour magasin Alleur
    if (_siteNumber == "10696451" && _sStoreNum == "181") showEresaVideo();
    // Tous les autres cas
    else {
        show_filter('filter');
        show_popup('popup-commentcamarche');
    }

    return false;
}

