var css_browser_selector = function() {
    var
        ua=navigator.userAgent.toLowerCase(),
        is=function(t){ return ua.indexOf(t) != -1; },
        h=document.getElementsByTagName('html')[0],
        b=(!(/opera|webtv/i.test(ua))&&/msie (\d)/.test(ua))?('ie ie'+RegExp.$1):is('gecko/')? 'gecko':is('opera/9')?'opera opera9':/opera (\d)/.test(ua)?'opera opera'+RegExp.$1:is('konqueror')?'konqueror':is('applewebkit/')?'webkit safari':is('mozilla/')?'gecko':'',
        os=(is('x11')||is('linux'))?' linux':is('mac')?' mac':is('win')?' win':'';
    var c=b+os+' js';
    h.className += h.className?' '+c:c;
}();

// Scintillement des backgrounds sous IE
try{document.execCommand('BackgroundImageCache', false, true);}catch(e){};
var TsDocRef = null;


// Navigateur et Version
var X_nameNavigateur = 'FF'; // Par default Firefox
var X_versionNavigateur = 0; // Par default pas de version
mon_navigateur(navigator.appVersion);

function mon_navigateur(X_navigateur){
    var X_tabNav = X_navigateur.split(';');
    for(var i in X_tabNav){
        // Si IE
        if(X_tabNav[i].indexOf('MSIE') > -1){
            X_nameNavigateur = 'IE';
            var X_version = X_tabNav[i].replace('MSIE','');
            X_versionNavigateur = X_version.replace(' ','');
        }
    }
}

/* *******************************************************************************************************
                        Fonctions pour la page fiche  produit
******************************************************************************************************* */

function $LoadPopupAlerte(){
    if( $('alerte_dispo_select') ){$('alerte_dispo_select').options.length = 0;}

    if( $('TsMemoTaille') && $('alerte_dispo_select') ){
        var TsTabElements = $c($('TsMemoTaille'), 'option');
        for(var i=0;i<TsTabElements.length;i++){
            $('alerte_dispo_select').options[i] = new Option($('TsMemoTaille').options[i].text, $('TsMemoTaille').options[i].value);
        }
        
        $('alerte_dispo_select').selectedIndex = parseInt($('TsMemoTaille').getAttribute('index'));
    }   

    if( $('alerte_dispo_select').options.length == 0 ) { 
$('alerte_dispo_select').options[0] = new Option($('TsIdProduit').value, $('TsIdProduit').value); 
$('popup_alerte_produit').style.display = 'none';
 }  

    if( $('alerte_dispo_select').options.length == 0 ){$('popup_alerte_produit').style.display = 'none';}

    if( $('titre_page_produit') && $('alerte_dispo_titre') ){$('alerte_dispo_titre').innerHTML = $('titre_page_produit').innerHTML + ' est en rupture de stock ! ';}
    
    if( $('alerte_id_secteur') ){$('alerte_id_secteur').value = window.TsIdSecteur;}
    if( $('alerte_fin_url') ){$('alerte_fin_url').value = $('TsFinUrl').value;}
    if( $('alerte_lib_secteur') ){$('alerte_lib_secteur').value = $('TsLibSecteur').value;}
    if( $('alerte_lib_famille') ){$('alerte_lib_famille').value = $('TsLibFamille').value;}
    if( $('alerte_mail_utilisateur') ){$('alerte_mail_utilisateur').value = $('TsMailUtilisateur').value;}
        if(document.getElementById('mail'))
        {
            document.getElementById('mail').value=$('alerte_mail_utilisateur').value;
        }
}

/* *******************************************************************************************************
                        Fonctions pour la gestion des produits phares (page home,sante,sport)
******************************************************************************************************* */
var ongletTgCourant = '';
// Onglet t�tes de gondole
function changeOngletTg(ongletTg,e)
{
    if (ongletTg=="0") {
        setInvisible('gondolas-products-1');
        setInvisible('gondolas-products-2');
        setVisible('gondolas-products-0');
        if ($n("header_gondolas_1")!=null) $n("header_gondolas_1").className = '';
        if ($n("header_gondolas_2")!=null) $n("header_gondolas_2").className = ''; 
    } else if (ongletTg=="1") {
        setInvisible('gondolas-products-0');
        setInvisible('gondolas-products-2');
        setVisible('gondolas-products-1');
        if ($n("header_gondolas_0")!=null) $n("header_gondolas_0").className = '';
        if ($n("header_gondolas_2")!=null) $n("header_gondolas_2").className = '';
    } else if (ongletTg=="2") {
        setInvisible('gondolas-products-0');
        setInvisible('gondolas-products-1');
        setVisible('gondolas-products-2');
        if ($n("header_gondolas_0")!=null) $n("header_gondolas_0").className = '';
        if ($n("header_gondolas_1")!=null) $n("header_gondolas_1").className = '';
    }
    $n("header_gondolas_"+ongletTg).className = 'active';
}

/* *******************************************************************************************************
                        Fonctions pour la gestion de l'affichage de l'ongletSport
******************************************************************************************************* */
var compteurSport;
function mouseOutSport(elt,elt2){
    compteurSport = setTimeout("mouseOut('"+elt+"','"+elt2+"')",100);      
}

// Function qui fait le traitement OnMouseOver
function mouseOver(elt, elt2){
    if( $n(elt) ){$n(elt).className = 'sport2actif';}
    if( $n(elt2) ){$n(elt2).style.display = 'block';}
    if( $n('iframe_'+elt2) ) {
        $n('iframe_'+elt2).style.display = 'block';
        $n('iframe_'+elt2).style.width = $n(elt2).offsetWidth + 'px';
        $n('iframe_'+elt2).style.height = $n(elt2).offsetHeight + 'px';
    }
    clearTimeout(compteurSport);
}

// Function qui fait le traitement OnMouseOut
function mouseOut(elt, elt2){
    clearTimeout(compteurSport);

    if( $n(elt) ){$n(elt).className = 'sport2';}
    if( $n(elt2) ){$n(elt2).style.display = 'none';}
    if( $n('iframe_'+elt2) ){$n('iframe_'+elt2).style.display = 'none';}
}

/* *******************************************************************************************************
                        Fonctions pour l'affichage de la navigation
******************************************************************************************************* */
function categEffect(li_elem,elem,fromLine, toLine) {
    if (elem && (elem.timer==undefined || elem.timer==null)) {
        elem.fromLine = fromLine;
        elem.toLine = toLine;
        elem.timer = new Timer(elem,tickOpen,stopTickOpen,10,toLine-fromLine);
        elem.timer.start();
    	setInvisible(li_elem); // hide "voir tous"
    }
}

function tickOpen(elem,tickNumber,nbTicks) {
	var t = $c(elem,'li'); // LI children
	var i = elem.fromLine + tickNumber -1;
	setVisible(t[i]);
}
function stopTickOpen(elem,tickNumber,nbTicks) {
    //elem.className = 'shownCateg';
}



/* *******************************************************************************************************
                        Timer
******************************************************************************************************* */
function Timer(owner,callback,stopCallback,ms,nbTicks) {
    this.owner = owner;
    this.callback = callback;
    this.stopCallback = stopCallback;
    this.ms = ms;
    this.nbTicks = nbTicks;
    this.tickNumber = 0;
}

Timer.prototype = {
    start: function() {
        var self = this;
        this.intervalId = setInterval(
            function() {
              self._tick(self.ms);
            },
            this.ms
        );
    },
    stop: function() {
    	this.owner.timer = null;
        clearInterval(this.intervalId);
        this.stopCallback(this.owner,this.tickNumber,this.nbTicks);
    },
    _tick: function() {
        ++this.tickNumber;
        this.callback(this.owner,this.tickNumber,this.nbTicks);
        if (this.tickNumber == this.nbTicks) {
            this.stop();
        }
    }
};


/* *******************************************************************************************************
                        Fonctions outils
******************************************************************************************************* */
// Function de changer la classe d'element
function setClass(className, element)
{
    var elt = $n(element);
    if(!elt) {return false;}
    elt.className = className;
}

// Function qui rend l'element visible
function setVisible(elt)
{
  if( !$n(elt) ) {return false};
  
  $n(elt).style.display = 'block';
  $n(elt).style.visibility = 'visible';
}

// Function qui rend l'element invisible
function setInvisible(elt)
{
  if(!$n(elt)) {return false};
  
  $n(elt).style.display = 'none';
  $n(elt).style.visibility = 'hidden';
}

//Function qui rend invisible le 1er elt et rendre visible le deuxieme
function makeVisileFilters(elt1, elt2) 
{
	if(!$n(elt1)) {return false};
	if(!$n(elt2)) {return false};
	
	setInvisible(elt1) ;
	setVisible(elt2) ;	
}

// Arret de la propagation sur evenement
function $ClearPropagation(e){
 if(!e){e = window.event;}
 
 e.preventDefault ? e.preventDefault() : e.returnValue = false;
 e.stopPropagation ? e.stopPropagation() : e.cancelBuble = true;
}

// Ouverture popup
function openPopPup(theURL,winName,features) {
  window.open(theURL,winName,features);
}

function Contains(t, elt) {
    for (var i=0;i<t.length;i++) if (t[i]==elt) return true;
    return false;
}

function $n(o) {
    return (typeof o=='string') ? o=document.getElementById(o) : o;
}

function $t(o) {
    return $n(o).tagName ? $n(o).tagName.toLowerCase() : '';
}

function $c(o,t) {
    var at = t ? t.toLowerCase().split('|') : null;
    var a=new Array;
    if (!$n(o).childNodes) return null;
    for (var i=0;i<$n(o).childNodes.length;i++) {
        if (!at) { if ($n(o).childNodes[i].tagName) a[a.length]=$n(o).childNodes[i]; }
        else if (Contains(at,$t($n(o).childNodes[i]))) a[a.length]=$n(o).childNodes[i];
    }
    return a;
}

function $p(o,t) {
    if (!o) return null;
    var at = t ? t.toLowerCase().split('|') : null;
    return $t(o)=='body' ? null : (Contains(at,$t(o)) ? $n(o) : $p($n(o).parentNode, t));
}

function GetSrcElt(e) {
    e = e || window.event;
    if (e.srcElement) return e.srcElement;
    else if (e.target) return e.target;
    return null;
}

// Ajoute une class a un element
function AddClassName(X_className, X_class){
    var X_TabClass = X_class.split('|');
    for(i in X_TabClass){
        if(X_className.indexOf(X_TabClass[i]) > -1){continue;} // X_TabClass[i] deja dans X_className
        if(X_className.length > 0){X_className += ' ' + X_TabClass[i];}else{X_className = X_TabClass[i];}// Ajoute X_TabClass[i] dans X_className
    }
    return X_className;
}

// Supprime une class a un element
function DeleteClassName(X_className, X_class){
    var X_TabClass = X_class.split('|');
    for(i in X_TabClass){
        if(X_className.indexOf(X_TabClass[i]) <= -1){continue;} // X_TabClass[i] pas dans X_className
        var X_tabClassName = X_className.split(' ');
        for(j in X_tabClassName){if(X_tabClassName[j] == X_TabClass[i]){X_tabClassName[j] = '';}}// Supprime X_TabClass[i] dans X_tabClassName
        X_className = X_tabClassName.join(' ');
    }
    return X_className;
}
/*************************************************************************************************************************************/
/* FUNCTION SUR LES NODES                                                                                                            */
/*************************************************************************************************************************************/
function Contains(t, elt) {
    for (var i=0;i<t.length;i++) if (t[i]==elt) return true;
    return false;
}
function $(o) {
    return (typeof o=='string') ? o=document.getElementById(o) : o;
}
function $t(o) {
    return $(o).tagName ? $(o).tagName.toLowerCase() : '';
}
function $c(o,t) {
    var at = t ? t.toLowerCase().split('|') : null;
    var a=new Array;
    if (!$(o).childNodes) return null;
    for (var i=0;i<$(o).childNodes.length;i++) {
        if (!at) { if ($(o).childNodes[i].tagName) a[a.length]=$(o).childNodes[i]; }
        else if (Contains(at,$t($(o).childNodes[i]))) a[a.length]=$(o).childNodes[i];
    }
    return a;
}
function $p(o,t) {
    if (!o) return null;
    var at = t ? t.toLowerCase().split('|') : null;
    return $t(o)=='body' ? null : (Contains(at,$t(o)) ? $(o) : $p($(o).parentNode, t));
}
function GetSrcElt(e){
    if(!e){e = window.e;}
    if(e.srcElement){return e.srcElement;}
    if(e.target){return e.target;}
    return null;
}

function isValidEmail(email) {
   var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
   return emailPattern.test(email); 
}

/*************************************************************************************************************************************/

/*
  Check if the OxylaneID platform is available
*/
function checkPlatformOxylaneID(pUrl) {
    // XMLHttpRequest
    var _xhr=null;
    if(window.XMLHttpRequest) // Firefox et autres
      _xhr = new XMLHttpRequest();
    else if(window.ActiveXObject){ // Internet Explorer
        try {
            _xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                _xhr = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e1) {
                _xhr = null;
            }
        }
    }
    else {
        alert("Your browser does not support XMLHTTPRequest...");
    }
    
    if (_xhr) {
        _xhr.open("GET", pUrl, true);
        _xhr.onreadystatechange=function() {
          if(_xhr.readyState==4 && _xhr.responseText) {
            
          }
        };
        _xhr.send(null);
    }
}


/* Functions used on page products list ***************************************/

// Displays the details block when hover the details link
function showGrilleOver(productId,e) {
	$('product_'+productId).style.zIndex = 2; // allows to recover other product divs
	$('description_autres_'+productId).style.display = 'block';
}

// Hide the details block when stop hover the details link
function hideGrilleOver(productId,e) {
	$('product_'+productId).style.zIndex = 1;
	$('description_autres_'+productId).style.display = 'none';
}
/* Functions used on page products list ***************************************/

function open_close_navig(elem_a) {
	if (elem_a!=null) {
		var li = elem_a.parentNode;
		if (li!=null) {
			var t = li.className.split(' ');
			if (Contains(t,'selected')) {
				li.className = AddClassName( DeleteClassName(li.className,'selected') , 'notSelected');
			} else {
				li.className = AddClassName( DeleteClassName(li.className,'notSelected') , 'selected');
			}
		}
	}
}
//Click on "see all filters" : show the hidden filters, hide the see all link
function makeVisibleFilters(seeAllLink, ulId) {
	var ul = document.getElementById(ulId);
	var filters = ul.getElementsByTagName('li');
	for (var i=0 ; i<filters.length ; i++) {
		var filter = filters[i];
		showFilter(filter);
	}
	setInvisible(seeAllLink);
}
//Function qui rend les filtres visibles
function showFilter(elt) {
  if( !$n(elt) ) {return false};
  
  $n(elt).style.display = 'inline';
  $n(elt).style.visibility = 'visible';
}
