
// JavaScript Document

//----------------------------------------------------------------------------------------------------
// 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, "lebourget", "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 = '/webservices/htmlpromptevent.htm';
        document.getElementById("bg_fonce").style.height = height+"px";
    }
}

//----------------------------------------------------------------------------------------------------
// Fonction pour redimensionner homotétiquement l'image de fond'
//----------------------------------------------------------------------------------------------------
function contentAutoSize(){
    var screenW = 0, screenH = 0, sizeW = 1024, sizeH = 475, sizeHfull = 580, rapport = 0, headerH = 0;
    if( typeof( window.innerWidth ) == 'number' ) {
        //Non-IE
        screenW = window.innerWidth;
        screenH = window.innerHeight;
    } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
        //IE 6+ in 'standards compliant mode'
        screenW = document.documentElement.clientWidth;
        screenH = document.documentElement.clientHeight;
    } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
        //IE 4 compatible
        screenW = document.body.clientWidth;
        screenH = document.body.clientHeight;
    }

    rapport = sizeH/sizeHfull;
	headerH = screenH - (screenH*rapport);
    screenH = screenH*rapport;
    if (screenH<=sizeH)
        screenH=sizeH;

    if (document.getElementById("BackgroundImage") && document.getElementById("BackgroundImageContainer")){
        if (screenH/screenW <= sizeH/sizeW){
            //100% largeur
            document.getElementById("BackgroundImage").style.width = screenW +"px";
            document.getElementById("BackgroundImage").style.height = (screenW*sizeH/sizeW) +"px";

        }else if (screenH/screenW > sizeH/sizeW){
            //100% hauteur
            document.getElementById("BackgroundImage").style.width  = (screenH*sizeW/sizeH) +"px";
            document.getElementById("BackgroundImage").style.height = screenH +"px";
        }
        document.getElementById("BackgroundImageContainer").style.height = (screenH) +"px";
        document.getElementById("BackgroundImageContainer").style.height = (screenH) +"px";
		document.getElementById("global-container").style.background = 'none';
    }
	if(document.getElementById("backImage")){
		document.getElementById("homecontainer").style.width = screenW +"px";
        document.getElementById("homecontainer").style.height = (screenH) +"px";
		document.getElementById("backImage").style.width = (screenW) + "px";
		document.getElementById("backImage").style.height = (screenH) + "px";
		if (screenH/screenW <= sizeH/sizeW){
			$('#homeswf img').css('width', Math.round(screenW) + "px");
			$('#homeswf img').css('height', (Math.round(screenW*sizeH/sizeW)+10) + "px");
		 }
		 else if (screenH/screenW > sizeH/sizeW){
            //100% hauteur
			$('#backImage img').css('width', Math.round(screenH*sizeW/sizeH) + "px");
			$('#backImage img').css('height', Math.round(screenH) + "px");
        }
	}
	if(document.getElementById("homeswf")){
		document.getElementById("homecontainer").style.width = screenW +"px";
        document.getElementById("homecontainer").style.height = (screenH) +"px";
		document.getElementById("homeswf").style.width = (screenW) + "px";
		document.getElementById("homeswf").style.height = (screenH) + "px";
		if (screenH/screenW <= sizeH/sizeW){
			$('#homeswf embed').attr('width', Math.round(screenW) + "px");
			$('#homeswf embed').attr('height', (Math.round(screenW*sizeH/sizeW)+10) + "px");
		 }
		 else if (screenH/screenW > sizeH/sizeW){
            //100% hauteur
			$('#homeswf embed').attr('width', Math.round(screenH*sizeW/sizeH) + "px");
			$('#homeswf embed').attr('height', Math.round(screenH) + "px");
        }
	}

	if (document.getElementById("global-container"))
        document.getElementById("global-container").style.height = (screenH) +"px";
	if (document.getElementById("header"))
        document.getElementById("header").style.height = (headerH) +"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();
            });
        }
    }
	/*IE6 bug fixed*/
	if(value == "show")
		$('#adding select').hide();
	else $('#adding select').show();
}
function hideElement (itemEl){
    $("#"+itemEl).removeClass("display");
    $("#"+itemEl).removeClass("show");
    $("#"+itemEl).removeClass("hide");
}



//----------------------------------------------------------------------------------------------------
// Fonction du guide Menu Market
//----------------------------------------------------------------------------------------------------
function Guide( itemEl, Url ){
    hideAllGuide();
    $("#"+itemEl).removeClass("guidecursorinactif");
    $("#"+itemEl).addClass("guidecursoractif");
    document.f_guidedessoins.action = Url;
}

function hideAllGuide(){
    var i=1;
    while (document.getElementById('tranche'+i)){
        $("#tranche"+i).removeClass("guidecursorinactif");
        $("#tranche"+i).removeClass("guidecursoractif");
        $("#tranche"+i).addClass("guidecursorinactif");
        i++;
    }
}

//----------------------------------------------------------------------------------------------------
// 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);
        });
    }
}

/*
* 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-275)
    });
    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;
        for (var i=0; i<nbNodes; i++){
            var node = document.getElementById(objectID).childNodes[i];
            if ( node.nodeName.toLowerCase() == "div" && node.id.match("categ_") ){
                if (document.getElementById(node.id)){
                    $("#"+node.id).mouseover(function(){
                        var index = this.id.substr(("categ_").length);
                        open_MenuCateg(index);
                    }).mouseout(function(){
                        var index = this.id.substr(("categ_").length);
                        close_MenuCateg(index);
                    });
                }
            }
        }
    }
}
function open_MenuCateg(el){
    if (document.getElementById("categ_"+el)){
        $("#categ_"+el).removeClass("navigation");
        $("#categ_"+el).addClass("navigationon");
    }
    if (document.getElementById("categmenumarket_"+el))
        autoShowHide ('categmenumarket_'+el, 'show', false);
}
function close_MenuCateg(el){
    if (document.getElementById("categ_"+el)){
        $("#categ_"+el).removeClass("navigationon");
        $("#categ_"+el).addClass("navigation");
    }
    if (document.getElementById("categmenumarket_"+el))
        autoShowHide ('categmenumarket_'+el, 'hide', false);
}

//----------------------------------------------------------------------------------------------------
// Fonction d'ajoût aux favoris
//----------------------------------------------------------------------------------------------------
/*
* 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('navigation');
    contentAutoSize();
    //miniShopper();
});

//----------------------------------------------------------------------------------------------------
// Exécution automatique des fonctions lors de la modification de la taille d'écran
//----------------------------------------------------------------------------------------------------
$(window).resize(function(){
    contentAutoSize();
});