/**************************************************************************************************************************************************************************************************/
/* CONSTANTE */
/**************************************************************************************************************************************************************************************************/
window.CONST_BGCOLORFILTER = '#001f6a';
window.CONST_BGCOLOROPACITY = 0.7;
window.CONST_PATH_IMG = '/images/';
/**************************************************************************************************************************************************************************************************/

/**************************************************************************************************************************************************************************************************/
/* VARIABLES GLOBALES */
/**************************************************************************************************************************************************************************************************/
/**************************************************************************************************************************************************************************************************/

/**************************************************************************************************************************************************************************************************/
/* EVENTS */
/**************************************************************************************************************************************************************************************************/

if (window.addEventListener) { //DOM-2 FF, IE8n, etc.
    window.addEventListener("load", initAll, false);
} else if (window.attachEvent) { //DOM-1 IE7
    window.attachEvent("onload", initAll);
} else { // DOM-0 IE6
    window.onload = initAll;
}

function initAll(){
    traitement_png();
    if (typeof ($$) != "undefined") {
        initSelects();
        initpDynamic();
        initBulles();
        initRadios();
        initEventFocusBt();
    }
    PopUpNonTrouve();
}

/**************************************************************************************************************************************************************************************************/

/**************************************************************************************************************************************************************************************************/
/* Scintillement des backgrounds sous IE */
/**************************************************************************************************************************************************************************************************/
try{document.execCommand('BackgroundImageCache', false, true);}catch(e){};
/**************************************************************************************************************************************************************************************************/

/**************************************************************************************************************************************************************************************************/
/* Fonctions */
/**************************************************************************************************************************************************************************************************/


/** BDA **/

function initEventFocusBt(){
    if($('ctl00_ctl00_BodyContent_ContenuPage_NorautoCarSelector_TxtNumPlaque') ){
        $('ctl00_ctl00_BodyContent_ContenuPage_NorautoCarSelector_TxtNumPlaque').addEvent('focus', function(){
            $('ctl00_ctl00_BodyContent_ContenuPage_NorautoCarSelector_TxtNumPlaque').addEvent('keyup', keyBt);
            $('ctl00_ctl00_BodyContent_ContenuPage_NorautoCarSelector_TxtCarteGrise').addEvent('keyup', keyBt);
        });
    }
}

function keyBt(event){
    var event = event || window.event;
    if (event.$extended && event.event) event = event.event;
    var target = event.target || event.srcElement;
    var keypress = event.keyCode ? event.keyCode : event.charCode;
    if(keypress == '13'){ // appui sur la touche entrée
        if (target.id == 'ctl00_ctl00_BodyContent_ContenuPage_NorautoCarSelector_TxtNumPlaque' )
            $('ctl00_ctl00_BodyContent_ContenuPage_NorautoCarSelector_BtPlaque').click();
        else   
            $('ctl00_ctl00_BodyContent_ContenuPage_NorautoCarSelector_BtCarteGrise').click();
    }   
}

function carSelectorFocus(){
    var url = document.location;
    var tab = Array();
    var tagMsgError = document.getElementById("msgError");

    if (tagMsgError == null) {
        if ((url.toString()).split('#'))
            tab = (url.toString()).split('#');
        else
            tab[0] = (url.toString());
        window.document.location.href = tab[0] + '#identifier_car';
    }
}

/** Fonction qui affiche une popup si une pièce n'a pas été trouvé ds la BDD **/
function PopUpNonTrouve()
{
    var tagNoProduct = document.getElementById("NoProduct");
    if (tagNoProduct){
        if(tagNoProduct != null)
        {
            $ShowPopup("PopUp/non-trouve.aspx?famille=" + tagNoProduct.value);
        }
    }
}

/** Fonction qui affiche une popup quand on enregistre un vehicule dans les cookies**/
function PopUpBienEnregistrer() {
    var tagBienEnregistrer = document.getElementById("BienEnregistrer");
    if (tagBienEnregistrer) {
        if (tagBienEnregistrer != null) {
            $ShowPopup("PopUp/car-bien-enregistre.aspx");
            return true;
        }
    }
    return false;
}

/** Fonction qui crée une popup d'attente pour les requêtes AJAX **/
function waitingPopup(){
    // FILTRE
    var filter = document.createElement('div');
    filter.className = 'opac20';
    filter.id = 'filtre2';
    var scrollHeight = (document.documentElement && document.documentElement.scrollLeft) || (window.pageXOffset || self.pageXOffset || document.body.scrollLeft) || (document.documentElement && document.documentElement.scrollTop) || (window.pageYOffset || self.pageYOffset || document.body.scrollTop);
    filter.style.height = scrollHeight + window.screen.height+'px';
    filter.style.width = '100%';
    filter.style.zIndex = 10000;
    filter.style.position = 'absolute';
    filter.style.top = 0;
    filter.style.left = 0;
    filter.style.background = '#001F6A';
    filter.style.display = 'block';
    var myBody = $$('body');
    myBody[0].appendChild(filter);
    
    // POPUP
    var popup = document.createElement('div');
    popup.id = 'waiting_popup';
    popup.style.width = 208+'px';
    popup.style.height = 14+'px';
    popup.style.position = 'absolute';
    var h = getWindowHeight()/2;
    popup.style.top = scrollHeight + h +'px';
    popup.style.left = '50%';
    popup.style.zIndex = 10001;
    popup.style.margin = '-7px 0  0 -110px';
    popup.innerHTML = '<img src=\"images/img-loader3.gif\" alt=\"\" />';
    myBody[0].appendChild(popup);
}

/** Fonction qui supprimer la popup d'attente pour les requêtes AJAX **/
function deleteWaitingPopup(){
    var myBody = $$('body');
    myBody[0].removeChild($('waiting_popup'));
    if($('filtre2')){
        myBody[0].removeChild($('filtre2'));
    }
}

/** Spécifique **/
function initpDynamic(){
    var pDynamic = $$('p.pDynamic');
    var nbpDynamic = pDynamic.length;
    for(var i = 0 ; i < nbpDynamic ; i++)
        pDynamic[i].addEvent('click', affpDynamic);
}

function affpDynamic(event){
    var target; var blocG = $('blocG'); var blocD = $('blocD'); var cg = $('carte_grise'); var num_im = $('num_im');
    (document.all) ? target = window.event.srcElement : target = event.target;
    var nextDiv = $(target).parentNode.parentNode.getElements('div')[0];
    if ( nextDiv.getStyle('display') == 'none') {
        nextDiv.setStyle('display','block');
        $(target).parentNode.className = ($(target).parentNode.className).substring(0,2) + ' pDynamic pActif span_sp4';
    }else if(nextDiv.getStyle('display') == 'block'){
        nextDiv.setStyle('display','none');
        $(target).parentNode.className = ($(target).parentNode.className).substring(0,2) + ' pDynamic pInactif span_sp4';
    }
}


/** Spécifique tableau car selector **/
function initRadios(){
    var tab = $('tab_refs');
    if(tab){
        tab.getElements('p').each(function(el) {
            el.addEvent('click', selectRadio);
            el.addEvent('mouseover', affBg);
            el.addEvent('mouseout', initLignes);
        });
    }
}

function selectRadio(){
    (this.nodeName == 'INPUT') ? ligne = $(parent(this,3)) : $(ligne = parent(this,2));
    ligne.getElements('input')[0].click();
}

function affBg(event){
    //initLignes();
    var ligne;
    (this.nodeName == 'INPUT') ? ligne = $(parent(this,3)) : ligne = $(parent(this,2));
    this.style.cursor = 'pointer';
    ligne.getElements('p').each(function(el) {
        el.parentNode.className = 'actif';
    });
}

function initLignes(){
    var tab = $('tab_refs');
    tab.getElements('p').each(function(el) {
        el.parentNode.className = '';
    });
}
/** fin Spécifique tableau car selector **/ 

/** Fonctions gérant les bulles d'aide **/
function initBulles(){
    var bulles = $$('img.infobulle');
    bulles.each(function(el) {
        el.addEvent('mouseover', displayBulle);
        el.addEvent('mouseout', maskBulle);
    });
}

function getPos(evt) {
    var tabPos = new Array();
    //if(!evt) evt = window.event;
    evt = evt.event || window.event;
    x = evt.clientX;
    y = evt.clientY;
    tabPos[0] = x;
    tabPos[1] = y;

    return tabPos;
}

function maskBulle(){
    var myBody = $$('body');
    if($('infobulle_content')){
        var content = myBody[0].lastChild.innerHTML;
        myBody[0].removeChild(myBody[0].lastChild);
        this.alt = content;
    }else{
        return;
    }
}

function displayBulle(evt){
    var target = this;
    var position = getPos(evt);
    // taille du scroll vertical
    var scrollHeight = (document.documentElement && document.documentElement.scrollLeft) || (window.pageXOffset || self.pageXOffset || document.body.scrollLeft) || (document.documentElement && document.documentElement.scrollTop) || (window.pageYOffset || self.pageYOffset || document.body.scrollTop);
    // création de la div et récupération de ses infos
    var newDiv = document.createElement('div');
    newDiv.innerHTML = $(target).alt;
    $(target).alt = '';
    newDiv.style.position = 'absolute';
    newDiv.style.top = '15000px';
    newDiv.style.display = 'block';
    newDiv.style.width = '134px';
    newDiv.style.zIndex = '999';
    newDiv.style.background = '#fff';
    
    var myBody = $$('body');
    myBody[0].appendChild(newDiv);
    var h = newDiv.offsetHeight;
    newDiv.style.height = h+'px';
    newDiv.style.top = position[1]+h-40+scrollHeight+'px';
    newDiv.className = 'infobulle_content';
    newDiv.id = 'infobulle_content';
    
    (position[0] > (myBody[0].offsetWidth - 250)) ? newDiv.style.left = (position[0]-153)+'px' : newDiv.style.left = (position[0]-67)+'px';
}

function parent(elt, num){
    var n = 0;
    while(n!=num){
        elt = elt.parentNode;
        n++;
    }
    return elt;
}

/** Fonctions gérant une fausse liste déroulante **/
/** 
La liste doit avoir la structure suivante :
<div id="liste_deroulante" class="select">
	<h5 id="selection" class="active"><span class="txt_select">Afficher un autre rayon</span></h5>
	<ul id="choix_select" class="select_active">
		<li><a href="#" title="">Accessoires</a></li>
        ....
        <li><a href="#" title="">Alimentation Air Carburant</a></li>
	</ul>
</div><!-- liste_deroulante -->
**/

function eventTarget(event){
if (event.target) return event.target;
if (event.srcElement) return event.srcElement;
}
/** Fonction qui génère une scrollbarre dans la fausse liste déroulante si plus de 10 sous-familles **/
function refreshSelects() {
    var selects = $$('div.select');
    selects.each(function(sel) {
        var lis = sel.getElements('li');
        if (lis.length > 10) sel.getElement('ul').style.height = '186px';
    });
}

/** fonction qui dynamise toutes les fausses listes déroulantes de la page **/
    function initSelects() {
        $$('div.select').each(function(el) {
            initSelect(el);
        });
    }

/** function qui dynamise une liste déroulante **/
    function initSelect(elt) {
        if (elt) {
            var selection = elt.getElement('h5');
            if (selection) {
                selection.removeEvent('click', affSelect);
                selection.addEvent('click', affSelect);
            }
        }
    }

var lienSelected = '';
var listeSelected = '';
//tabSelected = new Array();

/** Fonction qui initialisent les liens du menu d'une fausse liste déroulante et gère son affichage **/
var initLinksSelect = function(event) {
    var target = eventTarget(event);
    var elt = $(parent(target, 3));
    var ul = elt.getElement('ul');
    if (ul) { ul.className = 'dn'; }

    var selection = elt.getElement('h5');
    /** On remplace le texte sélectionné dans la liste **/
    if (selection) {
        selection.innerHTML = '<span class=\"txt_select\">' + target.innerHTML + '</span>';
        selection.className = 'inactive';
    }
}

// état inactif
var etat = 0;

/** Fonction gérant l'affichage d'une fausse liste déroulante **/
var affSelect = function(event) {

    var target = eventTarget(event);
    var listeS = (target.nodeName == 'SPAN') ? parent(target, 2).id : parent(target, 1).id;

    var lien_actif = document.getElement('#' + listeS.toString() + ' a.actif');

    if (event.$extended && event.event) event = event.event;
    if (event.preventDefault) event.preventDefault();
    if (event.stopPropagation) event.stopPropagation();
    event.returnValue = false;
    event.cancelBubble = true;
    
    var select = $(parent(this, 1));
    var txt_select = this;
    var ul = select.getElement('ul');
    var myBody = $(document.body);

    if (ul.className == 'dn') {
        maskAllSelects();
        ul.className = 'db';

        // Gestion des touches clavier pour le focus ss-famille

        if (lien_actif) {
            lien_actif.focus();
        } else {
            ul.getElement('a').focus();
        }
        ul.removeEvent('keyup', linkFocus);
        ul.addEvent('keyup', linkFocus);

        myBody.addEvent('click', function() {
            txt_select.className = 'inactive';
            ul.className = 'dn';
            ul.removeEvent('keyup', linkFocus);
            myBody.removeEvents('click');
            etat = 0; // liste inactive
        });
    }
    else {
        maskAllSelects();
        txt_select.className = 'inactive';
        ul.className = 'dn';
        ul.removeEvent('keyup', linkFocus);
        myBody.removeEvents('click');
        etat = 0; // liste inactive
    }
}

var keypressed = 0;
var key = '';
var lienCible;var nextLink;var previousLink;

/** Fonction qui permet le déplacement dans la liste en fonction du caractère tapé **/
function linkFocus(event){
    var event = event || window.event;
    if (event.$extended && event.event) event = event.event;
    var target = event.target || event.srcElement;
    keypressed = event.keyCode ? event.keyCode : event.charCode;
    
    if (event.preventDefault) event.preventDefault();
    if (event.stopPropagation) event.stopPropagation();
    event.returnValue = false;
    
    // gestion uniquement des chiffres, des lettres et des flèches haut et bas
    setTimeout(function() {
        if ((keypressed > 64 && keypressed < 91) || (keypressed > 46 && keypressed < 59) || (keypressed > 96 && keypressed < 106) || (keypressed == 38) || (keypressed == 40)) {

            var letter = ''; var index = 0; var links;
            var maliste = $(parent(target, 2));

            switch (keypressed) {
                case 97: key = '1'; break;
                case 98: key = '2'; break;
                case 99: key = '3'; break;
                case 100: key = '4'; break;
                case 101: key = '5'; break;
                case 102: key = '6'; break;
                case 103: key = '7'; break;
                case 104: key = '8'; break;
                case 105: key = '9'; break;
                default: key = String.fromCharCode(keypressed);
            }

            var li = target.getParent('li');

            if (keypressed == 40) { // fleche bas
                if (li.getNext('li')) {
                    nextLink = (li.getNext('li')).getElement('a');
                    if (nextLink) nextLink.focus();
                    lienCible = nextLink;
                }
                else lienCible = target;
            } else if (keypressed == 38) { // fleche haut
                if (li.getPrevious('li')) {
                    previousLink = (li.getPrevious('li')).getElement('a');
                    if (previousLink) previousLink.focus();
                    lienCible = previousLink;
                }
                else lienCible = target;
            } else {
                //links = $ES('a', maliste);
                links = maliste.getElements('a');
                while (letter != key) {
                    if (index != links.length) {
                        letter = (links[index].innerHTML).substring(0, 1);
                        index++;
                    } else {
                        return;
                    }
                }
                index--;
                lienCible = links[index];
                lienCible.focus();
            }
        }
    }, 100);
}


/** On masque toutes les fausses listes déroulantes **/
function maskAllSelects(){
    $$('div.select').each(function(sel) {
        var ul = sel.getElement('ul');
        if (ul && ul.className == 'db') {
            ul.className = 'dn';
        }
    });
}

//function removeAllEvents() {
//    //    var selects = $$('div.select');
//    //    var nbselects = selects.length;
//    //    var uls; var liens; var nbliens; var selections; var selection;
//    //    //alert(nbselects);
//    //    for (var i = 0; i < nbselects; i++) {
//    //        //alert( selects[i].id);
//    //        selects[i].removeEvent('click', affSelect);
//    //        uls = $ES('ul', selects[i]);
//    //        uls[0].removeEvent('keyup', linkFocus);
//    //        liens = $ES('a', uls[0]);
//    //        nbliens = liens.length;
//    //        for (var i = 0; i < nbliens; i++) {
//    //            liens[i].removeEvent('click', initLinksSelect);
//    //        }
//    //        selections = $ES('h5', selects[i]);
//    //        selection = selections[0];
//    //        selection.removeEvents('click');
//    //    }

//    $$('div.select').each(function(sel) {
//        sel.removeEvent('click', affSelect);
//        var ul = sel.getElement('ul');
//        if (ul) {
//            ul.removeEvent('keyup', linkFocus);
//            ul.getElements('a').each(function(lien) {
//                lien.removeEvent('click', initLinksSelect);
//            });
//        }
//        var selection = sel.getElement('h5');
//        if (selection) {
//            selection.removeEvents('click');
//        }
//    });
//}
/** FIN LISTE DEROULANTE **/
/**** FIN BDA **/

//function nothing(TsEvent){
//	var event = new Event(TsEvent);
//	event.stopPropagation();
//	event.stop();
//}
/*
function $HideSurFlash(){
    if( $('ctl00_ctl00_BodyContent_ContenuPage_surFlashCenter') ){$('ctl00_ctl00_BodyContent_ContenuPage_surFlashCenter').setStyle('height', '0px');}
}
function $SurFlashTimer(f){
    if( $('ctl00_ctl00_BodyContent_ContenuPage_surFlashCenter') ){setTimeout("$HideSurFlash()", 9000);}
}
*/
var timeoutCpt = '';


function zoomImage(TsEvent){
    clearTimeout(timeoutCpt);

    if( $('zoom_product') && $('zoom_product').getStyle('display') == 'block' ){return;}

	var event = new Event(TsEvent);
    var el = $(event.target).getParent('div.ligne-produit');	
    
    if( el ){
        el.setProperty('id', 'zoom_product_temp');
        el.setStyle('zIndex', 4);
        var el_a = el.getElement('span.zoom_product');
        if( el_a ){
            el_a.setProperty('id','zoom_product');
            el_a.setStyles({'display': 'block' , 'zIndex' : 99999 });
        }
    }
    $$('div.ct_liste_pdt').each(function (elt) {
        elt.style.position="static";
    });
    
    event.stopPropagation();
    event.stop();
}
function zoomImage_(){
    if( !$('zoom_product') ){return;}

    clearTimeout(timeoutCpt);
    timeoutCpt = setTimeout("zoomImage__()", 20);
}
function zoomImage__(){
    if( !$('zoom_product') ){return;}

    clearTimeout(timeoutCpt);
    if( $('zoom_product_temp') ){
        $('zoom_product_temp').setStyle('zIndex', 3);
        $('zoom_product_temp').removeProperty('id');
    }

    $('zoom_product').setStyles({'display': 'none'});
    $('zoom_product').removeProperty('id');
}


/* Gestion Zoom images cross-selling */
/** 
* Fonction permettant d'afficher le zoom de l'image ciblée
**/
function zoomImgCs(TsEvent){
    clearTimeout(timeoutCpt);

    if( $('zoom_product') && $('zoom_product').getStyle('display') == 'block' ){return;} // si déjà zoom, on ne fait rien

    // récupération de la balise cible de l'event pour lui ajouter du style et afficher la bonne div
	var event = new Event(TsEvent);
    var el = $(event.target).getParent('tr.img_cs');	
    if( el ){
        el.setProperty('id', 'zoom_product_temp');
        el.setStyle('zIndex', 99);
        var el_a = el.getElement('span.zoom_product');
        if( el_a ){
            el_a.setProperty('id','zoom_product')
            el_a.setStyles({'display': 'block', 'zIndex' : 3});
            el_a.parentNode.setStyles({'zIndex' : 5});
            //alert('classe de l\'élément père : '+child.parentNode.className);
        }
    }

    event.stopPropagation();
    event.stop();
}
function zoomImgCs_(){
    if( !$('zoom_product') ){return;}

    clearTimeout(timeoutCpt);
    timeoutCpt = setTimeout("zoomImgCs__()", 20);
}
function zoomImgCs__(){
    if( !$('zoom_product') ){return;}

    clearTimeout(timeoutCpt);
    if( $('zoom_product_temp') ){
        $('zoom_product_temp').setStyle('zIndex', 1);
        $('zoom_product_temp').removeProperty('id');
    }

    $('zoom_product').setStyles({'display': 'none'});
    $('zoom_product').removeProperty('id');
}


/* fin */



function bulleAide(TsEvent){
	var event = new Event(TsEvent);
    
    var el = $(event.target).getParent('div.ligne-produit');	

    if( el ){el.setStyle('zIndex', 4);}

    event.stopPropagation();
    event.stop();
}
function bulleAide_(TsEvent){
	var event = new Event(TsEvent);
    
    var el = $(event.target).getParent('div.ligne-produit');	

    if( el ){el.setStyle('zIndex', 3);}

    event.stopPropagation();
    event.stop();
}
/**************************************************************************************************************************************************************************************************/

/**************************************************************************************************************************************************************************************************/
/* Popup Thomas SEGOND */
/**************************************************************************************************************************************************************************************************/
if(document.documentElement && document.documentElement.clientWidth){window.TsDocRef = document.documentElement;}else{window.TsDocRef = document.body;}
if( (window.ie || window.ie6) && !window.ie7){window.IElt7=true;}else{window.IElt7=false;}

function $SetFilterPopup() {
    if (!$('filter')) { return; }

    if ($('filter').getStyle('display') == 'block') {
        setTimeout('$SetFilter()', 20);
        setTimeout('$SetPopup()', 20);
    }
}

function $ShowFilter(TsBgColorFilter){
	TsBgColorFilter = TsBgColorFilter || window.CONST_BGCOLORFILTER;

	if( !$('filter') ){$CreateFilter(TsBgColorFilter);}

	if( $('filter').getStyle('display') == 'block' ){return;}

	if ( window.IElt7 ){$GestionSelect('hidden');}

	$SetFilter();
	$('filter').setStyle('display', 'block');

	// Evenements pour gestion du filtre et de la popup
	window.addListener('resize', $SetFilterPopup);
	window.addListener('DOMMouseScroll', $SetFilterPopup);
	window.addListener('scroll', $SetFilterPopup);
}

function $HideFilter(){
	if( !$('filter') ){return;}
	
	$('filter').setStyle('display', 'none');
	if( window.IElt7 ){$GestionSelect('visible');}
}

function $SetFilter(){
	var TsLargeur = parseInt(window.TsDocRef.clientWidth) + parseInt(window.TsDocRef.scrollLeft);
	var TsHauteur = parseInt(window.TsDocRef.clientHeight) + parseInt(window.TsDocRef.scrollTop);

	if ($('global')) {
	    if ($('global').offsetHeight > TsHauteur) { TsHauteur = parseInt($('global').offsetHeight); }
	    if ($('global').offsetWidth > TsLargeur) { TsLargeur = parseInt($('global').offsetWidth); }
    }

	if( $('filter') ){$('filter').setStyles({'width':TsLargeur, 'height':TsHauteur})}
}

function $CreateFilter(TsBgColorFilter){
	var TsFilter = new Element('div').inject(document.body);
	TsFilter.setStyles({'position':'absolute', 'top':0, 'left':0, 'width':0, 'height':0, 'z-index':10000, 'background':TsBgColorFilter, 'display':'none', 'overflow':'hidden', 'opacity':window.CONST_BGCOLOROPACITY});
	TsFilter.setProperty('id', 'filter');
}

function $GestionSelect(TsOption){
	var TsElementsSelect = document.getElementsBySelector('select', false);
	for(var i=0,l=TsElementsSelect.length;i<l;i++){TsElementsSelect[i].setStyle('visibility', TsOption);}
}

function $ShowPopup(TsUrl, TsEvent){
    TsEvent =  TsEvent || null;
	if( TsEvent != null ){if(TsEvent){var event = new Event(TsEvent);}}

	$ShowFilter();

	if( !$('popup') ){$CreatePopup();}else{$HidePopup();}
	
    TsUrl = $UrlRamdom(TsUrl);
    var myRequest = new Request({ url: TsUrl, method: 'get', onRequest: $CreateLoader, onComplete: $SetPopupComplete, onFailure: $HideAll }).send();

	if( TsEvent != null ){
	    if(TsEvent){
		    event.stopPropagation();
		    event.stop();
	    }
	}
}

function $ShowPopupBiz(TsUrl){
	$ShowFilter();

	if( !$('popup') ){$CreatePopup();}else{$HidePopup();}

    TsUrl = $UrlRamdom(TsUrl);
    var myRequest = new Request({ url: TsUrl, method: 'get', onRequest: $CreateLoader, onComplete: $SetPopupComplete, onFailure: $HideAll }).send();
}

function $ShowPopupMessage(msg, type) {
    var urlPopup = $('SiteWebUrl').value + '/Contenu/Popup/popup-messages.aspx?type=' + type + '&msg=' + encodeURIComponent(msg);
    $ShowPopupBiz(urlPopup);
    return false;
}

function show_panier(msg) {
    $ShowPopupMessage(msg, 'panier');
}

function show_erreur(msg) {
    $ShowPopupMessage(msg, 'erreur');
}

function show_info(msg, idbody) {
    $ShowPopupMessage(msg, 'info');
}

function $SetPopupComplete(tsContent) {
    if (!$('popup')) { return; }

    var tsStart = '<!-- Start POPUP -->';
    var tsEnd = '<!-- End POPUP -->';

    if (tsContent.indexOf(tsStart) > -1 && tsContent.indexOf(tsEnd) > -1) {
        $('popup').innerHTML = tsContent.substring(tsContent.indexOf(tsStart), tsContent.indexOf(tsEnd) - 1);
    } else {
        $('popup').innerHTML = tsContent;
    }

    TsEvalScripts($('popup').innerHTML);

    var tsElementA = $('popup').getElement('a.fermer00');
    if (tsElementA) { tsElementA.setStyle('visibility', 'visible'); }
    //$SetPopup();
    $SetFilterPopup();    
}

function TsEvalScripts(evalResponse){
	var script, scripts;
	scripts = [];

	var regexp = /<script[^>]*>([\s\S]*?)<\/script>/gi;

	while ((script = regexp.exec(evalResponse))) scripts.push(script[1]);

	scripts = scripts.join('\n');

	if (scripts) (window.execScript) ? window.execScript(scripts) : window.setTimeout(scripts, 0);
}

function $HidePopup(){
	if( !$('popup') ){return;}
	$('popup').set('html', '');
	$('popup').setStyle('display', 'none');
	var htmlElement = document.getElementsByTagName('html')[0];
	htmlElement.style.overflow = 'auto';
}

function $SetPopup(){
    $SetPosition('popup');
    $SetFilter();
	$HidePopupLoader();
}

function $SetPosition(TsElement){
	$(TsElement).setStyles({'visibility':'hidden', 'display':'block'});
	
	var TsScrollTop = 0;
	var TsScrollLeft = 0;
	window.pageXOffset ? TsScrollLeft = window.pageXOffset : TsScrollLeft = window.TsDocRef.scrollLeft;
	window.pageYOffset ? TsScrollTop = window.pageYOffset : TsScrollTop = window.TsDocRef.scrollTop;

	window.innerHeight ? TsClientHeight = window.innerHeight : TsClientHeight = window.TsDocRef.clientHeight;
	
	var TsBlockTop = (parseInt(TsClientHeight) - parseInt($(TsElement).offsetHeight)) / 2;
	TsBlockTop = parseInt(TsScrollTop + TsBlockTop);

	TsBlockTop = TsBlockTop + 'px';
	var TsBlockLeft = (parseInt(TsDocRef.clientWidth) - parseInt($(TsElement).offsetWidth)) / 2;
	TsBlockLeft = parseInt(TsScrollLeft + TsBlockLeft) + 'px';

	if( $(TsElement) ){
		$(TsElement).setStyles({'top':TsBlockTop, 'left':TsBlockLeft, 'visibility':'visible'})
	}
}

function $CreatePopup(){
	var TsPopup = new Element('div').inject(document.body);
	TsPopup.setStyles({'position':'absolute', 'top':0, 'left':0, 'z-index':10001, 'display':'none', 'overflow':'hidden'});
	TsPopup.setProperty('id', 'popup');
}

function $CreatePopupLoader(){
	var TsPopup = new Element('div').inject(document.body);
	TsPopup.setStyles({'position':'absolute', 'top':0, 'left':0, 'z-index':10001, 'display':'none', 'overflow':'hidden'});
	TsPopup.setProperty('id', 'popup_loader');
}

function $CreateLoader() {
    var htmlElement = document.getElementsByTagName('html')[0];
    htmlElement.style.overflow = 'hidden';

    if (!$('popup_loader')) {
        $CreatePopupLoader();
    } else {
        $SetPosition('popup_loader');
        return;
    }

    var TsLoader = new Element('div');
    TsLoader.setStyles({ 'position': 'relative', 'width': 250, 'overflow': 'hidden', 'text-align': 'center', 'padding-top': 10, 'padding-bottom': 10 });
    TsLoader.setProperty('id', 'loader');

    var TsImage = new Element('img').inject(TsLoader);
    var tsSrcImg = window.CONST_PATH_IMG + 'img-loader3.gif';
    if ($('SiteWebUrl')) { tsSrcImg = $('SiteWebUrl').value + tsSrcImg; }
    TsImage.setProperty('src', tsSrcImg);
    TsImage.setProperty('alt', 'Chargement en cours ...');

    var TsTexte = new Element('p').inject(TsLoader);
    TsTexte.setStyles({ 'padding-left': 10, 'padding-right': 10, 'color': 'white' });
    TsTexte.set('html', 'Chargement en cours ...');

    TsLoader.inject($('popup_loader'));
    $SetPosition('popup_loader');
}

function $HidePopupLoader() {
    if (!$('popup_loader')) { return; }
    $('popup_loader').setStyle('display', 'none');
}

function $HideAll(TsEvent) {
    var event = new Event(TsEvent);

    $HidePopupLoader();
    $HidePopup();
    $HideFilter();

    event.stopPropagation();
    event.stop();
}

function $UrlRamdom(TsUrl) {
    if (TsUrl.contains('?')) {
        return TsUrl + '&nocache=' + Math.random();
    } else {
        return TsUrl + '?nocache=' + Math.random();
    }
}
/**************************************************************************************************************************************************************************************************/

/**************************************************************************************************************************************************************************************************/
//INTEGRATION DU FICHIER FONCTIONS.JS POUR REDUIRE LES REQUETES HTTP

function AffDiv(num) {
    var nb_div = 3;
    var div = document.getElementById("div0" + num);
    var div_elt = "";
    for (l = 0; l < nb_div; l++) {
        div_elt = document.getElementById("div0" + l);
        div_elt.style.display = 'none';
    }
    div.style.display = '';
}

function AffOneDiv(num) {
    var div = document.getElementById("div" + num);
    var cb = document.getElementById("cb" + num);
    if (cb.checked == true) {
        div.style.display = '';
    } else {
        div.style.display = 'none';
    }
}


function addLoadListener(func) {
    if (window.addEventListener) {
        window.addEventListener("load", func, false);
    } else if (document.addEventListener) {
        document.addEventListener("load", func, false);
    } else if (window.attachEvent) {
        window.attachEvent("onload", func);
    }
}

function changeClassName(blocId, inputId) {
    if (blocId == "ctl00_ctl00_BodyContent_ContenuPage_zone02") {
        document.getElementById("domicile").style.display = "block";
        document.getElementById("dtzone02").className = "dt02";
        document.getElementById("dtzone03").className = "dt01";
        document.getElementById("autreAdresse").style.display = "none";
        document.getElementById("ctl00_ctl00_BodyContent_ContenuPage_livraison02").checked = "checked";
        document.getElementById("ctl00_ctl00_BodyContent_ContenuPage_livraison03").checked = "";
    }
    else {
        document.getElementById("domicile").style.display = "none";
        document.getElementById("autreAdresse").style.display = "block";
        document.getElementById("dtzone02").className = "dt01";
        document.getElementById("dtzone03").className = "dt02";
        document.getElementById("ctl00_ctl00_BodyContent_ContenuPage_livraison02").checked = "";
        document.getElementById("ctl00_ctl00_BodyContent_ContenuPage_livraison03").checked = "checked";
    }
}

function AfficheFormulaireRdv() {
    var CheckBoxRdv = document.getElementById('ctl00_ctl00_BodyContent_ContenuPage_cbRdv');
    var DivRdv = document.getElementById('ctl00_ctl00_BodyContent_ContenuPage_rdv_formulaire');
    if (CheckBoxRdv.checked == true) {
        DivRdv.style.display = 'block';
    }
    else {
        DivRdv.style.display = 'none';
    }
}

function InfoPaiement(TsInput) {
    var TsTableauPaiement = new Array('texte_mode_paiementCB', 'texte_mode_paiementCHQ', 'texte_mode_paiementVIR', 'texte_mode_paiementRES');
    for (i in TsTableauPaiement) {
        var TsElement00 = document.getElementById(TsTableauPaiement[i]);
        if (!TsElement00) { continue; }
        var TsElementActif = 'texte_' + TsInput;
        if (TsTableauPaiement[i] == TsElementActif) {
            TsElement00.style.display = 'block';
        } else {
            TsElement00.style.display = 'none';
        }
    }

    if (document.getElementById('ctl00_ctl00_BodyContent_ContenuPage_rdv_paiement_cb') && document.getElementById('ctl00_ctl00_BodyContent_ContenuPage_rdv_paiement_non_cb')) {
        var TsElement01 = document.getElementById('ctl00_ctl00_BodyContent_ContenuPage_rdv_paiement_cb');
        var TsElement02 = document.getElementById('ctl00_ctl00_BodyContent_ContenuPage_rdv_paiement_non_cb');
        if (TsInput == 'mode_paiementCB' || TsInput == 'mode_paiementRES') {
            TsElement01.style.display = 'block';
            TsElement02.style.display = 'none';
            if (document.getElementById('ctl00_ctl00_BodyContent_ContenuPage_cbRdv').checked == true) {
                document.getElementById('ctl00_ctl00_BodyContent_ContenuPage_rdv_formulaire').style.display = 'block';
            }
        }
        else {
            TsElement01.style.display = 'none';
            TsElement02.style.display = 'block';
        }
    }
}

function GetSrcElt(e) {
    if (!e) e = window.event;
    if (e.srcElement) return e.srcElement;
    else if (e.target) return e.target;
    return null;
}

/* Ouverture de popup */
function openPopup(TsUrl, TsEvent){
    largeur=544;
    hauteur=555; 
    options="menubar=no,scrollbars=1,statusbar=no,";

    var top=(screen.height-hauteur)/2;     
    var left=(screen.width-largeur)/2;    
    
    $HidePopupLoader();
	$HidePopup();
    $HideFilter();
    window.open(TsUrl,"Conseils","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options); 
}

/**************************************************************************************************************************************************************************************************/
// INTEGRATION DU FICHIER DU FICHIER SLEIGHT.JS POUR REDUIRE LES REQUETTES HTTP
    // Navigateur et Version
    var X_nameNavigateur = 'FF'; // Par default Firefox
    var X_versionNavigateur = 0; // Par default pas de version

    function mon_navigateur(X_navigateur){
	    var X_tabNav = X_navigateur.split(';');
	    for(var i=0,x=X_tabNav.length;i<x;i++){
		    // 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(' ','');
		    }
	    }
    }

    function traitement_png(){
        // Version Navigateur
        mon_navigateur(navigator.appVersion);
       
        // Si IE et version inferieur à la 7
        if (X_nameNavigateur == 'IE' && X_versionNavigateur < 7) {
         
            // Recupere URL du site dans input type hidden
            var X_obj = document.getElementById('SiteWebUrl');
            if(X_obj){
	            // Traitement des images de la page
		        for (var i = document.images.length - 1, X_img = null; (X_img = document.images[i]); i--) {
	                // png
			        if(X_img.src.match(/\.png/i) != null) {
				        var X_src = X_img.src;
				        X_img.style.width = parseInt(X_img.offsetWidth) + "px";
				        X_img.style.height = parseInt(X_img.offsetHeight) + "px";
				        X_img.style.background ="none";
				        //alert(X_src);
				        X_img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + X_src + "', sizingMethod='crop')";
				        X_img.src = X_obj.value + "/images/bg-blank.gif";
			        }
		        }
		    }
        }
    }
/**************************************************************************************************************************************************************************************************/

function getWindowHeight() {
    var h = 0;
    if (typeof (window.innerHeight) == 'number') { // Netscape
        h = window.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
        h = document.documentElement.clientHeight;
    } else if (document.body && document.body.offsetHeight) { //client
        h = document.body.offsetHeight;
    }
    return h;
}


function etendHauteurContent() {
    if (document.getElementById('middle')) document.getElementById('middle').style.height = "auto";
}
addLoadListener(etendHauteurContent);


// empeche le ctrl+c ctrl+v pour les emails
function process_keypress3(event, X_this) {
    event = event || window.event;
    var X_touche = (event.which) ? event.which : event.keyCode;
    var X_toucheCtrl = (event.ctrlKey) ? event.ctrlKey : event.ctrlKey;
    if ((String.fromCharCode(X_touche).toLowerCase() == 'c' && X_toucheCtrl) || (String.fromCharCode(X_touche).toLowerCase() == 'v' && X_toucheCtrl)) {
        if ((String.fromCharCode(X_touche).toLowerCase() == 'v' && X_toucheCtrl)) { GetSrcElt(event).value = ''; }
        show_erreur("Vous ne pouvez pas faire de copier-coller dans ce champ.");
        return false;
    }
}

/*** load jquery ***/
(function($) {
    /* Deroulant compte */
    function deroulCpte() {
        var ctCpte = $("#ctConnectCpte");
        var cpte = $("#teaserConnect");
        var deroulCpte = $("#deroulCpte");
        var sliding = false;

        ctCpte.bind("mouseover", function() {
            if (!sliding) {
                sliding = true;
                cpte.addClass('select');
                deroulCpte.slideDown(200);
            }
        });
        ctCpte.bind("mouseleave", function() {
            deroulCpte.slideUp(200, function() { sliding = false; });
            cpte.removeClass('select');
        });
    }

    /* Newsletter header */
    function openNews() {
        var linkNews = $("#news00");
        var blocNews = $("#ctNews00");

        linkNews.click(function() {
            blocNews.toggle();
        });
    }

    /* Hover sur les produits de la Home */
    function hoverPdts() {
        $('.casePdt00').bind("mouseover", function(el) {
            $($(this).children(".periodeOpco")).removeClass("vh");
            $($(this).children(".periodeOpco")).addClass("vv");
            $($(this).children(".acheter")).removeClass("vh");
            $($(this).children(".acheter")).addClass("vv");
        });
        $('.casePdt00').bind("mouseleave", function(el) {
            $($(this).children(".periodeOpco")).removeClass("vv");
            $($(this).children(".periodeOpco")).addClass("vh");
            $($(this).children(".acheter")).removeClass("vv");
            $($(this).children(".acheter")).addClass("vh");
        });
    }

    /* Hover sur la categorie du menu Top */
    function hoverMenuTop() {
        $('.menu00 > li').bind("mouseover", function(el) {
            $($(this).children(".ssMenu00")).css({ display: "block" });
        });
        $('.menu00 > li').bind("mouseleave", function(el) {
            $($(this).children(".ssMenu00")).css({ display: "none" });
        });
        $('.ssMenu00').bind("mouseover", function(el) {
            $($(this).parent()).addClass("actif");
        });
        $('.ssMenu00').bind("mouseleave", function(el) {
            $($(this).parent()).removeClass("actif");
        });
    }

    /* Hover sur les catégories de niveau 1 de l'arborescence en colonne de gauche 
    Gère le déploiement des sous catégories au passage du curseur
    */
    function hoverArborescence() {
        var sliding = false;
        $('#MenuArborescence > li').children('ul').css({ display: "none" });

        $('#MenuArborescence > li').bind('mouseover', function(el) {
            el.stopPropagation();
            var currentSlidingElt = $(this).children('ul');
            var nbUl = currentSlidingElt.length;
            if (nbUl > 0 && !sliding) {
                sliding = true;
                $('#MenuArborescence > li').not(this).children('ul').slideUp('slow');
                $($(this).children('ul')).slideDown('slow', function() { sliding = false; });
            }
        });
    }

    /* Slide banniere bottom de la Home */
    function formatText(index, panel) {
        return index + "";
    }

    $(document).ready(function() {
        if (document.getElementById('ctConnectCpte')) {
            deroulCpte();
        }
        if (document.getElementById('news00')) {
            openNews();
        }
        if (document.getElementById('ctPdtsHP')) {
            hoverPdts();
        }
        if (document.getElementById('menu')) {
            hoverMenuTop();
        }
        if (document.getElementById('jcarousel')) {
            $('.anythingSlider').anythingSlider({
                easing: "easeInOutExpo",        // Anything other than "linear" or "swing" requires the easing plugin
                autoPlay: false,                 // This turns off the entire FUNCTIONALY, not just if it starts running or not.
                delay: 3000,                    // How long between slide transitions in AutoPlay mode
                startStopped: false,            // If autoPlay is on, this can force it to start stopped
                animationTime: 600,             // How long the slide transition takes
                hashTags: true,                 // Should links change the hashtag in the URL?
                buildNavigation: true,          // If true, builds and list of anchor links to link to each slide
                pauseOnHover: true,             // If true, and autoPlay is enabled, the show will pause on hover
                //startText: "Go",             // Start text
                //stopText: "Stop",               // Stop text
                navigationFormatter: formatText       // Details at the top of the file on this use (advanced use)
            });

            $("#slide-jump").click(function() {
                $('.anythingSlider').anythingSlider(4);
            });
        }
        if (document.getElementById('header_recherche')) {
            $('.header_recherche .list_criteres_affinage:not(".prix")').each(function() {
                var dd_list = $(this).find('dd');
                if (dd_list.length > 5) {
                    var i = 0;
                    dd_list.each(function() {
                        if (i > 4) {
                            $(this).hide();
                        }
                        i++;
                    });
                    $(this).append($('<a href="javascrip:void(0);" class="link_list_criteres_affinage" title="Tout afficher">Tout afficher</a>').bind('click', function() {
                        dd_list.each(function() {
                            if (!$(this).is(':visible')) $(this).animate({ "height": "toggle" });
                        });
                        $(this).hide();
                        $(this).closest('dl').find('.link_list_criteres_affinage_close').show();
                        return false;
                    })).append($('<a href="javascrip:void(0);" class="link_list_criteres_affinage_close" title="R&eacute;duire">R&eacute;duire</a>').bind('click', function() {
                        dd_list.each(function() {
                            if (!$(this).is(':visible')) $(this).animate({ "height": "toggle" });
                        });
                        $(this).hide();
                        $(this).closest('dl').find('.link_list_criteres_affinage').show();
                        var current_dd_list = $(this).closest('dl').find('dd');
                        i = 0;
                        current_dd_list.each(function() {
                            if (i > 4) {
                                $(this).animate({ "height": "toggle" });
                            }
                            i++;
                        });
                        return false;
                    }));
                    $('.link_list_criteres_affinage_close').hide();
                }
            });
        }
        if (document.getElementById('menu_gauche')) {
            hoverArborescence();
        }

        //On ajoute le temps de génération en bas de page.
        if (document.getElementById('ctl00_ctl00_hiTimestamp')) {
            $('#GenerateTime').html($('#ctl00_ctl00_hiTimestamp')[0].value);
        }

        //Envoi de mail sur erreur de chargement d'image
        $('img').error(function() {
            $.post($('#SiteWebUrl').val() + '/surveillance/SupervisionMail.aspx', {
                type: 'BrokenImgUrl',
                img: $(this).attr('src'),
                url: window.location.href
            }, function() {
                //hide the image? 
            });
        });
    });
})(jQuery);
