
	// JavaScript Document
	
	function popin(){
	    document.getElementById('collier').style.display='block';
	}

	//----------------------------------------------------------------------------------------------------
	// Fonction de sousmission des formulaires
	//----------------------------------------------------------------------------------------------------
	function send (itemEl){
		var form = document[itemEl];
		if (form)
			form.submit();
        return false;
	}

	//----------------------------------------------------------------------------------------------------
	// Fonctions moteur de recherche
	//----------------------------------------------------------------------------------------------------
	function chercher (){
		var recherche = document.f_search.recherche.value;
        getUrl('/fr/ma_recherche/'+recherche+'/recherche.htm');
        return false;
	}

	//----------------------------------------------------------------------------------------------------
	// Fonctions onClick sur DIV
	//----------------------------------------------------------------------------------------------------
	function getUrl (url){
		document.location.href = url;
        return false;
	}

	//----------------------------------------------------------------------------------------------------
	// Fonctions Pop Up
	//----------------------------------------------------------------------------------------------------
	function Open (url, width, height){
		window.open(url, "Saget", "menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width="+width+",height="+height+",top=100,left=100");
	}

	//----------------------------------------------------------------------------------------------------
	// Fonctions onClick de gestion des textes  de formulaires
	//----------------------------------------------------------------------------------------------------
	function assocTextToFormInput (itemEl, value){
		if (itemEl.value == value)
			itemEl.value = '';
		else if (itemEl.value == '')
			itemEl.value = value;
		return false;
	}

	//----------------------------------------------------------------------------------------------------
	// Fonction d'impression de document
	//----------------------------------------------------------------------------------------------------
	function imprimer (){
        window.print();
        return false;
	}

	//----------------------------------------------------------------------------------------------------
	// Fonction pour fermer le document
	//----------------------------------------------------------------------------------------------------
	function fermer (){
        window.close();
        return false;
	}

	//----------------------------------------------------------------------------------------------------
	// Fonction pour confirmer un choix
	//----------------------------------------------------------------------------------------------------
	function confirmer (value, form){
        if (confirm(value)){
            send(form);
            return true;
        }else{
            return false;
        }
	}

    //----------------------------------------------------------------------------------------------------
	// Fonction de réceupération de la hauteur exacte de la page.
    // Nota : ne pas utiliser le DOM body, car non compatible IE pour le calcul de la hauteur de page.
	//----------------------------------------------------------------------------------------------------
	function pageHeight(){
        var height              =  50; /* prévient les débords dus aux margins */
        height                  += $("#header-container").outerHeight();
        height                  += $("#banner-container").outerHeight();
        height                  += $("#page-container").outerHeight();
        var clientHeight        = window.innerHeight;
        if (clientHeight == undefined)
            clientHeight        = document.body.clientHeight;
        if (clientHeight>height)
            height              = clientHeight;
        return height;
    }

    //----------------------------------------------------------------------------------------------------
	// Fonction pour affiché le Background foncé
	//----------------------------------------------------------------------------------------------------
	function Bkg(){
        if (document.getElementById("iframe_bg_fonce")){
            var height = pageHeight();
            document.getElementById("iframe_bg_fonce").src = '/cgi-bin/htmlpromptevent.php';
            document.getElementById("bg_fonce").style.height = height+"px";
        }
    }

	//----------------------------------------------------------------------------------------------------
	// Fonctions CAPTCHA
	//----------------------------------------------------------------------------------------------------
	function refreshCaptcha (targetElement, url, loader){
		document.getElementById(targetElement).src = loader;
        document.getElementById(targetElement).src = url;
	}

	//----------------------------------------------------------------------------------------------------
	// Fonctions Loading Ajax
	//----------------------------------------------------------------------------------------------------
    function AjaxReset ( target ){
        if (document.getElementById(target+"Ajax"))
            document.getElementById(target+"Ajax").innerHTML = "<br /><br />";
        if (document.getElementById(target+"Render"))
            $("#"+target+"Render").addClass("loader");
    }
    function AjaxRender (data, target){
        document.getElementById(target+"Ajax").innerHTML = data;
        $("#"+target+"Render").removeClass("loader");
    }

	//----------------------------------------------------------------------------------------------------
	// Fonction pour afficher/masquer un DIV
	//----------------------------------------------------------------------------------------------------
	function autoShowHide (itemEl, value, fade, callback){
		/*
         * itemEl       : id de l'élément cible
         * value        : show pour afficher un élément masqué, hide masquer un élément affiché
         * fade         : true pour animer
         * callback     : fonction post exécution
         */
        if (document.getElementById(itemEl)){
    		if (fade==true && value=="show"){
                $("#"+itemEl).fadeIn("slow");
                $("#"+itemEl).queue(function(){
                    autoShowHide (itemEl, value, false, callback);
                    $(this).dequeue();
                });
            }
            else if (fade==true && value=="hide"){
                $("#"+itemEl).fadeOut("slow");
                $("#"+itemEl).queue(function(){
                    autoShowHide (itemEl, value, false, callback);
                    $(this).dequeue();
                });
            }
            else{
                hideElement(itemEl);
                $("#"+itemEl).addClass(value);
                $("#"+itemEl).queue(function(){
                    var execallback = eval(callback);
                    $(this).dequeue();
                });
            }
    	}
	}
    function hideElement (itemEl){
        $("#"+itemEl).removeClass("display");
        $("#"+itemEl).removeClass("show");
        $("#"+itemEl).removeClass("hide");
    }

	//----------------------------------------------------------------------------------------------------
	// Fonctions relatives au Panier
	//----------------------------------------------------------------------------------------------------
	/**
     * Cette variable stockera la nécessité
     * de rafrachir le listing produit du mini shopper
     * Le listing mini shopper ne nécessite dêtre mis
     * à jour que lorsque
     *      - la page s'affiche
     *      - un porduit est ajouté au panier
     *
     */
    var _miniShopperListingNeedUpdate = true;
    function miniShopperRender (){
        /*
         * Exécute le rendu du panier
         */
        if (document.getElementById('minishopperAjax')&&document.getElementById('minishopperRender')){
            var AjaxShopperFile = "/fr/webservices/mini-shopper.htm";
            autoShowHide ("minishopperAjax", "hide", false);
            document.getElementById("minishopperAjax").innerHTML = "";
            $("#minishopperRender").removeClass("loader");
            $("#minishopperRender").addClass("loader");
            $("#minishopperAjax").load(AjaxShopperFile+"?form_action=afficher", "", function(){
                $("#minishopperRender").removeClass("loader");
                autoShowHide ("minishopperAjax", "show", false);
            });
        }
    }
    function miniShopperListingRender (){
        if( _miniShopperListingNeedUpdate == false ){
            autoShowHide ("minishopperlistAjax", "show", false);
            return false;
        }
        
        /*
         * Exécute le rendu des derniers produits ajoutés au panier
         */
        var AjaxShopperFile = "/fr/webservices/mini-shopper.htm";
        autoShowHide ("minishopperlistAjax", "hide", false);
        document.getElementById("minishopperlistAjax").innerHTML = "";
        $("#minishopper-details-liste").removeClass("loader");
        $("#minishopper-details-liste").addClass("loader");
        $("#minishopperlistAjax").load(AjaxShopperFile+"?form_action=lastaddedproducts", "", function(){
            $("#minishopper-details-liste").removeClass("loader");
            autoShowHide ("minishopperlistAjax", "show", true);
        });

        _miniShopperListingNeedUpdate = false;
        
        return true;
    }
    function miniShopper (){
        if (document.getElementById('shopper')){
            $("#shopper").mouseover(function(){
                clearTimeout(timer);
                timer = setTimeout(function() {miniShopperAnimate('0px','-240px', true);}, 350);
            });
            $("#shopper").mouseout(function(){
                clearTimeout(timer);
                timer = setTimeout(function() {miniShopperAnimate('-93px','-65px', false);}, 350);
            });
        }
    }
    function miniShopperAnimate(position, background, callback){
        $("#minishopper-details").animate({
            top:position
        }, 500 );
        $("#minishopper-details").queue(function(){
            $(this).css({'background-position' : '0px '+background});
            $(this).dequeue();
            if ( callback==true )
                miniShopperListingRender ();
            //else if (callback == false)
                //document.getElementById("minishopperlistAjax").innerHTML = "";
        });
    }

    /*
     * itemEl       : id de l'élément déclencheur de l'action
     * sku          : référence produit
     * qty          : quantité de produits à ajouter au panier
     * Le callback exécute 2 fonctions :
     *              - La MAJ du mini-shopper,
     *              - L'affichage de la pop-in de confirmation
     */
    function AddToShopper (itemEl, sku, qty){
        _miniShopperListingNeedUpdate = true;
        miniShopperPopInCreate (itemEl, sku, qty);
        var AjaxShopperFile = "/fr/webservices/mini-shopper.htm";
        $.post(AjaxShopperFile, { form_action:"ajouteraupanier", reference:sku, quantite:qty, enregistrer:"ok" }, function(data, textStatus){
            miniShopperPopInConfirmationRender (data);
            miniShopperRender ();
        });
    }
    function miniShopperPopInCreate (itemEl, sku, qty){
        _miniShopperListingNeedUpdate = true;
        var postion     = $("#"+itemEl);
        var offset      = postion.offset();
        this.node       = document.createElement("div");
        $(this.node).attr({ id: "minishopperpopin" });
        $(this.node).addClass('minishopperpopin');
        $(this.node).addClass('hide');
        $(this.node).appendTo("body");
        $(this.node).css({
            top:    (offset.top-150),
            left:   (offset.left-100)
        });
        this.node       = document.createElement("div");
        $(this.node).attr({ id: "minishopperpopinRender" });
        $(this.node).addClass('loader');
        $(this.node).appendTo("#minishopperpopin");
        this.node       = document.createElement("div");
        $(this.node).attr({ id: "minishopperpopinAjax" });
        $(this.node).addClass('hide');
        $(this.node).appendTo("#minishopperpopinRender");
        Bkg();
        autoShowHide ('bg_fonce',           'show', false);
        autoShowHide ('minishopperpopin',   'show', false);
        document.getElementById("minishopperpopinAjax").innerHTML = "";
        $("#minishopperpopinRender").removeClass("loader");
        $("#minishopperpopinRender").addClass("loader");
    }
    /*
     * Détruit le rendu de la confirmation d'ajout au panier
     */
    function miniShopperPopInDesctruct (){
        $("#minishopperpopin").remove();
        autoShowHide ('bg_fonce',           'hide', false);
    }
    /*
     * Exécute le rendu de la confirmation d'ajout au panier
     */
    function miniShopperPopInConfirmationRender (data){
        document.getElementById("minishopperpopinAjax").innerHTML = data;
        $("#minishopperpopinRender").removeClass("loader");
        autoShowHide ("minishopperpopinAjax", "show", true);
    }

	//----------------------------------------------------------------------------------------------------
	// Fonctions relatives au menu CATEGORY
	//----------------------------------------------------------------------------------------------------
	function menuNavigationCateg ( objectID ){
		elementID 	= document.getElementById(objectID);
        if (elementID){
            var nbNodes = document.getElementById(objectID).childNodes.length;
            var j		= 1;
            var baseId	= "menucategory";
            var nameId	= "";

            for (var i=0; i<nbNodes; i++){
                nameId = baseId+j;
                var node = document.getElementById(objectID).childNodes[i];
                if ( node.nodeName.toLowerCase() == "div" && node.id == (nameId) ){
                    if (document.getElementById(nameId)){
                        $("#"+nameId).mouseover(function(){
                            var index = this.id.substr((baseId).length);
                            open_MenuCateg(index);
                        }).mouseout(function(){
                            var index = this.id.substr((baseId).length);
                            close_MenuCateg(index);
                        });
                        j++;
                    }
                }
            }
        }
	}
	function open_MenuCateg(el){
		if (document.getElementById("menu"+el))
    		$("#menu"+el).addClass("category_hover");
		if (document.getElementById("submenu"+el))
    		autoShowHide ('submenu'+el, 'show', false);
	}
	function close_MenuCateg(el){
		if (document.getElementById("menu"+el))
    		$("#menu"+el).removeClass("category_hover");
		if (document.getElementById("submenu"+el))
    		autoShowHide ('submenu'+el, 'hide', false);
    }
	function focus_MenuCateg(el){
		if (document.getElementById("menu"+el)){
    		$("#menu"+el).removeClass("category");
    		$("#menu"+el).addClass("category_focus");
    	}
	}
    /*
     * sku          : id_collection
     */
    function AddToFavorite( sku ){
        var AjaxShopperFile = "/fr/webservices/services-client.htm";
        $.post(AjaxShopperFile,
               { form_action:"ajouter.collection.favorie", id_collection:sku, enregistrer:"ok" },
               function(data, textStatus){
                    var elements = $(".nb_produits_favoris");
                    for( var i=0; i< elements.length; i++ ){
                        elements[i].innerHTML = data;
                    alert('Votre collection a bien été ajoutée à vos favoris');
               }
        } );
    }

    //----------------------------------------------------------------------------------------------------
	// Variables générales
	//----------------------------------------------------------------------------------------------------
	var timer;

	//----------------------------------------------------------------------------------------------------
	// Exécution automatique des fonctions
	//----------------------------------------------------------------------------------------------------
	$(document).ready(function () {
    	//miniShopperRender();
        menuNavigationCateg('shoppingnav');
        miniShopper();
	});

	//----------------------------------------------------------------------------------------------------