﻿/************
*  Fichier Javascript commun fnac.com pour myfnac
*
*
*****************/

/**************
* Variables globales
**************/
var IS_IE = document.all && window.print && !window.opera && /MSIE [56]/.test(navigator.userAgent);
var IS_IE7 = document.all && window.print && !window.opera && /MSIE [7]/.test(navigator.userAgent);
var IS_IE_ALL = document.all && window.print && !window.opera && /MSIE/.test(navigator.userAgent);
var IE_W3C = IS_IE && /MSIE [789]/.test(navigator.userAgent);
var IS_Webkit = /Konqueror|Safari|KHTML/.test(navigator.userAgent);
var heightPropertyToUse = IS_IE ? "height" : "minHeight";

/* ecrit les classes dans le tag HTML, pas besoin d'attendre le chargement du body */
document.documentElement.className += " hasJS"; //cette classe rajoute une classe CSS qui permet des actions afin de cacher ou afficher des elements seulement pour les visiteurs qui ont le Javascript active sur leur navigateur. (exemple le hidesubmit)
if(IS_IE)
    document.documentElement.className += " IS_IE"; //cette classe permet d'utiliser des hacks CSS/JS seulement pour IE6 et versions inferieures.
else if(IS_IE7)
    document.documentElement.className += " IS_IE7"; //cette classe permet d'utiliser des hacks CSS/JS seulement pour IE7

// Importation des Fichiers JS
function ImportJS()
{
    var nbr_att = arguments.length;
    var js_effets = document.createElement("script");
    js_effets.setAttribute("type", "text/javascript");
    js_effets.setAttribute("src", arguments[0]);
    if(nbr_att > 1)
    {
        for(var i = 1;i < nbr_att;i++)
        {
            js_effets.setAttribute(arguments[i][0], arguments[i][1]);
        }
    }
    document.getElementsByTagName("head")[0].appendChild(js_effets);
}

// Importation des fichiers CSS
function ImportCSS()
{
    var nbr_att = arguments.length;
    var css_style = document.createElement("link");
    css_style.setAttribute("rel", "stylesheet");
    css_style.setAttribute("type", "text/css");
    css_style.setAttribute("href", arguments[0]);
    css_style.setAttribute("media", "screen");
    if(nbr_att > 1)
    {
        for(var i = 1;i < nbr_att;i++)
        {
            css_style.setAttribute(arguments[i][0], arguments[i][1]);
        }
    }
    document.getElementsByTagName("head")[0].appendChild(css_style);
}
/* getMouse :
Recupere les coordonnees de la souris et les met dans les variables globales
window.mouseX
et	window.mouseY,
il faut passer event en parametre sur les evenements
ex :
function fun(param1, param2, e) {
getMouse(e);
sourisX = window.mouseX;
sourisY = window.mouseY
}
fun("foo", "bar", event);

*/
/* getMouse :  */
function getMouse(e)
{
    var x, y;var elt = (navigator.userAgent.indexOf("MSIE 5") != -1) ? document.body : document.documentElement;
    if(document.captureEvents)
    {
        x = e.pageX;
        y = e.pageY;
    } else if(window.event.clientX)
    {
        x = window.event.clientX + elt.scrollLeft;
        y = window.event.clientY + elt.scrollTop;
    }
    window.mouseX = x;
    window.mouseY = y;
}
/* findPos :
recupere la position X,Y d'un objet dans une page
ex :
var pos = findPos(elm);

*/
function findPos(obj)
{
    var curleft = curtop = 0;
    if(obj.offsetParent)
    {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while(obj = obj.offsetParent)
        {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curleft, curtop];
}

/*
jQuery.fn.extend({
findPos : function() {
obj = $(this).get(0);
var curleft = obj.offsetLeft || 0;
var curtop = obj.offsetTop || 0;
while (obj = obj.offsetParent) {
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
return {x:curleft,y:curtop};
}
});*/

/* extension jquery recherche cross-browser sur la hauteur d'un elem */
jQuery.fn.extend({
    findHeight: function()
    {
        obj = $(this).get(0);
        var curtall = obj.scrollHeight || 0;
        return { h: curtall };
    }
});
jQuery.fn.extend({
    findWidth: function()
    {
        obj = $(this).get(0);
        var curlarge = obj.offsetWidth || 0;
        return { l: curlarge };
    }
});
/*  ifrlayer :
Cette fonction retourne la  valeur flottante d'un style.
ex :
- afficher un bloc :
myBlock.style.display='block';
ifrlayer.make(myBlock); //genere ou affiche l'iframe
- cacher un bloc :
myBlock.style.display='none';
ifrlayer.hide(myBlock); //cache l'iframe associee au bloc
-deplacer un bloc :
myBlock.style.left = "100px";
ifrlayer.move(myBlock); // deplace l'iframe associee au bloc
Cette fonction n'est pas encore utilisee, mais peut-etre dans un developpement futur.
*/
/* genere une iframe pour faire passer les divs par dessus des selects sous IE */
var ifrlayer = {
    make: function(obj)
    {
        if(!obj) return;obj = (typeof (obj) == "string") ? document.getElementById(obj) : obj;if(!obj) return;
        if(document.all && !window.opera && document.getElementById)
        {
            if(obj.parentNode && !obj.iframelayer)
            {
                var ifr = obj.parentNode.insertBefore(document.createElement('<iframe src="javascript:false"></iframe>'), obj);
                if(obj.currentStyle.zIndex != "" && parseInt(obj.currentStyle.zIndex) > 1)
                {
                    ifr.style.zIndex = parseInt(obj.currentStyle.zIndex) - 1;
                }
                with(ifr.style)
                {
                    filter = "mask()";
                    position = "absolute";
                }
                obj.iframelayer = ifr;
            }
        }
        if(obj.iframelayer)
        {
            obj.iframelayer.style.visibility = "visible";
            ifrlayer.resize(obj);
            ifrlayer.move(obj)
        }
    },
    hide: function(obj)
    {
        if(!obj) return;obj = typeof (obj) == "string" ? document.getElementById(obj) : obj;if(!obj) return;
        var ifr = obj.iframelayer;
        if(ifr)
        {
            ifr.style.visibility = "hidden";
        }
    },
    move: function(obj)
    {
        if(obj && obj.iframelayer)
        {
            with(obj.iframelayer.style)
            {
                top = obj.offsetTop + "px";
                left = obj.offsetLeft + "px"
            }
        }
    },
    resize: function(obj)
    {
        if(obj && obj.iframelayer)
        {
            with(obj.iframelayer.style)
            {
                width = obj.offsetWidth + "px";
                height = obj.offsetHeight + "px";
            }
        }
    }
}

/*  addHover :
Cette fonction ajoute le fonctionnement de la pseudo classe hover en CSS, et seulement pour IE
Elle se base sur les evenement propres a IE qui sont les evenements qui ont le comportement le plus proche du :hover en CSS.
Pour utiliser cette fonction il faut le faire en CSS
ex :
#menu ul li {behavior:expression(addHover(this))}
Afin de ne pas prendre en compte IE7 en mode strict il suffit de placer la classe .IS_IE avant, cette classe est ajoute pendant le chargement de la page.
.IS_IE #menu ul li {behavior:expression(addHover(this))}
*/
function addHover(elm)
{
    elm.style.behavior = " ";
    elm.onmouseenter = function()
    {
        this.className += ' hover';
    }
    elm.onmouseleave = function()
    {
        this.className = this.className.replace(/\bhover\b/, "");
    }
}

/*************
* Fonctions pour fixer les coins sous IE
* Une fonctions est prevue aussi pour Safari 2.0, Opera 8.5 et FF 1.0 pour certains cas
**************/
/*  cssRight :
fixe les coins positionnes en absolu a droite
ex :
body.IS_IE .tr {right:expression(addHover(this))}
Il faut afin que cela fonctionne, avoir declare le right dans un selecteur precedent (pour les autres navigateurs).
ex : .tr {height:5px;  width:5px; right:0}
Afin de ne pas prendre en compte IE7 en mode strict il suffit de placer la classe .IS_IE avant, cette classe est ajoutee pendant le chargement de la page et n'est ajoutee que pour IE5.x ou 6.
*/
function cssRight(elm)
{
    elm.style.right = (parseInt(elm.currentStyle.right) - (elm.parentNode.offsetWidth % 2)) + "px";
}

/*  cssBottom :  (comme CSS right avec un parametre supplementaire)
fixe les coins positionnes en absolu a droite
ex :
body.IS_IE .br {bottom:expression(addHover(this))}
Il faut afin que cela fonctionne, avoir declare le right dans un selecteur precedent (pour les autres navigateurs).
Afin de ne pas prendre en compte IE7 en mode strict il suffit de placer la classe .IS_IE avant, cette classe est ajoutee pendant le chargement de la page et n'est ajoutee que pour IE5.x ou 6.

Si on veut rajouter ces coins dans un array qui permettra de les refixer si le bloc s'agrandit ou autre. il suffit de rajouter "true" dans les parametres.
ex :
body.IS_IE .br {bottom:expression(addHover(this, true))}
*/
function cssBottom(elm, pushElement)
{
    if(pushElement && !elm.CSSBottomAlreadyCSS)
    {
        //CSSBottomCorners.push(elm);
        elm.CSSBottomAlreadyCSS = true;
    }
    elm.style.bottom = (parseInt(elm.currentStyle.bottom) - (elm.parentNode.offsetHeight % 2)) + "px";
}
/*******
fonction de debug, il suffit de l'appeler printDebug("miou");
et s'affichera en haut a gauche le resultat
Je devrais y inclure un bouton pour vider le tableau noir,
genre un innerHTML="" vite vu
*******/
function printDebug(debug, ecrase)
{
    var monId = document.getElementById("header");
    if(document.getElementById("debugJS"))
    {
        if(ecrase == 0)
        {
            nouveauDiv.innerHTML += "<pre>" + debug + "</pre>";
        }
        else
        {
            nouveauDiv.innerHTML = "<pre>" + debug + "</pre>";
        }

    }
    else
    {
        nouveauDiv = document.createElement("div");//creation  de l objet
        nouveauDiv.id = "debugJS";//identification
        nouveauDiv.style.display = "block";//on le stylise un peu
        nouveauDiv.style.position = "absolute";
        nouveauDiv.style.top = "20px";
        nouveauDiv.style.left = "0px";
        nouveauDiv.style.background = "black";
        nouveauDiv.style.border = "solid 1px #900";
        nouveauDiv.style.zIndex = "60";
        nouveauDiv.style.fontSize = "11px";
        nouveauDiv.style.overflow = "auto";
        nouveauDiv.style.height = "600px";
        nouveauDiv.style.width = "auto";
        nouveauDiv.style.padding = "5px";
        nouveauDiv.innerHTML = "<pre>" + debug + "</pre>";
        monId.parentNode.insertBefore(nouveauDiv, monId);//on insert l'objet avant la balise appele
    }
}
/* Genere un message d'attente avec */
var waitingMsg = {
    shadowLayer: null,
    layerId: "waitingMsg",
    defaultTimeout: 15000,
    timer: null,
    show: function()
    {
        var div = document.getElementById(waitingMsg.layerId);
        var doc = /MSIE 5|OPERA/.test(navigator.userAgent) ? document.body : document.documentElement;
        if(!waitingMsg.shadowLayer)
        {
            var shadow = document.body.appendChild(document.createElement("div"));
            waitingMsg.shadowLayer = shadow;
            shadow.id = "shadowLayer";
            with(shadow.style)
            {
                left = 0;
                right = 0;
                height = doc.scrollHeight + "px";
            }
        }
        waitingMsg.shadowLayer.style.display = "block";
        ifrlayer.make(waitingMsg.shadowLayer);
        if(div)
        {
            div = document.body.appendChild(div);
            div.style.display = "block";
            ifrlayer.make(div);
            div.style.left = (doc.scrollLeft + parseInt((doc.clientWidth - div.offsetWidth) / 2)) + "px";
            div.style.top = (doc.scrollTop + parseInt((doc.clientHeight - div.offsetHeight) / 2)) + "px"
        }
    },
    hide: function()
    {
        var div = document.getElementById(waitingMsg.layerId);
        waitingMsg.shadowLayer.style.display = "none";
        ifrlayer.hide(waitingMsg.shadowLayer);
        div.style.display = "none";
        ifrlayer.hide(div);
        clearTimeout(waitingMsg.timer);
    },
    setHideTimer: function(timer)
    {
        var timeforTimeout = timer || waitingMsg.defaultTimeout;
        if(!waitingMsg.timer)
        {
            waitingMsg.timer = setTimeout("waitingMsg.hide()", timeforTimeout);
        }
    }
}
var hoverblock = {
    init: function(parentElement)
    {
        var tmp = null;
        parentElement = typeof (parentElement) == "string" ? document.getElementById(parentElement) : parentElement;
        if(!parentElement) return;
        var table = parentElement.getElementsByTagName("table"); //init Accessories
        for(var i = 0;i < table.length;i++)
        {
            if(table[i].className.match(/\btbl-accessoires\b/))
            {
                var tds = table[i].getElementsByTagName("td");
                for(var j = 0;j < tds.length;j++)
                {
                    var td = tds[j];

                    tmp = getElementsByClassName(td, "a", "picture");
                    if(tmp.length > 0)
                    {
                        td.eltPictureLink = tmp[0];
                        td.eltPicture = tmp[0].firstChild;
                    }

                    tmp = getElementsByClassName(td, "a", "element");
                    if(tmp.length > 0) td.eltTitle = tmp[0];

                    var hblock = getElementsByClassName(td, "div", "hoverBlock");
                    if(hblock.length > 0) { td.hoverBlock = hblock[0]; }

                    if(td.hoverBlock)
                    {
                        td.eltTitle.AssociatedTd = td;
                        td.eltTitle.onmouseover = hoverblock.over;
                        addEvent(td.eltTitle, "mousemove", hoverblock.move);
                        addEvent(td.eltTitle, "mouseout", hoverblock.close);
                        if(td.eltPictureLink)
                        {
                            td.eltPictureLink.AssociatedTd = td;

                            /* over on the product picture */
                            /*   td.eltPictureLink.onmouseover = hoverblock.over;
                            addEvent(td.eltPictureLink, "mousemove", hoverblock.move);
                            addEvent(td.eltPictureLink, "mouseout", hoverblock.close);
                            */
                        }
                    }
                }
            }
        }
    },
    over: function(e)
    {
        var td = this.AssociatedTd;
        popLayerMakeContent(e, "service", td.hoverBlock);
    },
    move: function(e)
    {
        popLayerShow(e);
    },
    close: function(e)
    {
        popLayerClose();
    }
}

/*****
menu deroulant - simulation du hover facon F6
*****/
function sousMenuAddHover(elm, position)
{
    elm.style.behavior = " ";
    var menu = elm.getElementsByTagName("ul");
    if(menu.length > 0)
    {
        elm.theUl = menu[0];
        ifrlayer.make(elm.theUl);
        elm.onmouseenter = function()
        {
            this.className += ' currentJs';
            ifrlayer.make(elm.theUl);
        }
        elm.onmouseleave = function()
        {
            this.className = this.className.replace(/\b(right)?currentJs\b/, "");
            ifrlayer.hide(this.theUl);
        }
    }
}
function sousMenuActivation(obj, evt, boucle)
{
    //  printDebug(evt.keyCode,0);
    function killSousMenu()
    {
        var allLi = obj.parentNode.getElementsByTagName("li");
        for(var i = 0;i < allLi.length;i++)
        {
            allLi[i].className = allLi[i].className.replace(/\b(right)?currentJs\b/, "");
            ifrlayer.hide(this.theUl);
        }
    }
    // touche echap
    if(evt.keyCode == 27)
    {
        killSousMenu();
    }
    // fleche haut
    if(evt.keyCode == 38)
    {
        if(!obj.id == "")
        {
            return;
        }
        else
        {
            killSousMenu();
        }
    }
    // fleche droite
    if(evt.keyCode == 39)
    {
        if(obj.id == "m_photo_camescope")
        {
            killSousMenu();
            document.getElementById("m_livres").getElementsByTagName("a")[0].focus();
            document.getElementById("m_livres").className += " currentJs";
        }
        else
        {
            killSousMenu();
            var droiteMenu = (IS_IE_ALL) ? obj.nextSibling : obj.nextSibling.nextSibling;
            //      var droiteMenu = obj.nextSibling.nextSibling;
            droiteMenu.getElementsByTagName("a")[0].focus();
            droiteMenu.className += " currentJs";
        }
    }
    // fleche bas
    if(evt.keyCode == 40)
    {
        return;//non actif encore
        if(!obj.id == "")
        {
            var lesA = obj.parentNode.getElementsByTagName("a");
            for(var j = 0;j > lesA.length;j++)
            {
                if(lesA[j])
                {
                }
            }
        }
        killSousMenu();
    }
    // fleche gauche
    if(evt.keyCode == 37)
    {
        if(obj.id == "m_livres")
        {
            killSousMenu();
            document.getElementById("m_photo_camescope").getElementsByTagName("a")[0].focus();
            document.getElementById("m_photo_camescope").className += " currentJs";
            ifrlayer.make(elm.theUl);
        }
        else
        {
            killSousMenu();
            var gaucheMenu = (IS_IE_ALL) ? obj.previousSibling : obj.previousSibling.previousSibling;
            //       var gaucheMenu = obj.previousSibling.previousSibling;
            gaucheMenu.getElementsByTagName("a")[0].focus();
            gaucheMenu.className += " currentJs";
            ifrlayer.make(elm.theUl);
        }
    }

    //        si fleche bas descend 40
    //        si fleche haut monte 38
    //        si fleche droite droitise 39
    //        si fleche gauche gauchise 37
}

/* classe pour déclencher un rollover en utilisant simplement une classe dans le <a> : 
les images doivent contenir '_on' et '_off' avant le suffixe dans leurs noms 
*/
$(function rollHover()
{
    if(!rhChemin) { var rhChemin = "../Img/MyFnac/boutons/"; }
    var construction = {
        process: null,
        path: function(file)
        {
            var indice = file.lastIndexOf("/");
            var fichier = file.substring(indice + 1);
            if(/on/.test(fichier))
            {
                process = fichier.replace(/on/, "off");
                return process;
            } else if(/off/.test(fichier))
            {
                process = fichier.replace(/off/, "on");
                return process;
            } else { return false; }
        }
    };
    $("a.rHover").mouseover(function()
    {
        var fichier = $(this).children("img").attr("src");
        if(f = construction.path(fichier))
        {
            $(this).children("img").attr("src", rhChemin + f);
        }

    });
    $("a.rHover").mouseout(function()
    {
        var fichier = $(this).children("img").attr("src");
        if(f = construction.path(fichier))
        {
            $(this).children("img").attr("src", rhChemin + f);
        }
    });
});

/* Gestion du module de trie par notes */
function note()
{
    var tt = $('#item0');
    $('.option').fadeIn(500);
    $('.note0').click(function()
    {
        //alert("ok");
        $(tt).animate({ top: '-' + 0 + 'px' }, 1100);
    });
    $('.note1').click(function()
    {
        $(tt).animate({ top: '-' + 20 + 'px' }, 1100);

    });
    $('.note2').click(function()
    {
        $(tt).animate({ top: '-' + 36 + 'px' }, 1100);

    });
    $('.note3').click(function()
    {
        $(tt).animate({ top: '-' + 55 + 'px' }, 1100);
    });


}

//fermer Recommandation page AdviceListView.aspx et Advices.aspx
function fermerRecommandation()
{
    $("div").each(function()
    {
        var div = $(this);
        if(div.attr("class") == "listing lienInverse")
        {
            div.animate({ height: 'toggle', opacity: 'toggle' }, "slow");
        }
    });
    $("#recommandation").animate({ height: 'toggle', opacity: 'toggle' }, "slow");
    $("#coin").animate({ height: 'toggle', opacity: 'toggle' }, "slow");
}



function remoteClick(objId)
{
    var target = document.getElementById(objId);
    if(document.dispatchEvent)
    { // W3C
        var oEvent = document.createEvent("MouseEvents");
        oEvent.initMouseEvent("click", true, true, window, 1, 1, 1, 1, 1, false, false, false, false, 0, target);
        target.dispatchEvent(oEvent);
    }
    else if(document.fireEvent)
    { // IE
        target.fireEvent("onclick");
    }
}

function remoteRelease()
{
    var recId = $(".action ul li img").eq(1).attr('id');
    remoteClick(recId);
}



function popRefill(obj, partId, e, text, Origin, articleName)
{
    var deja = document.getElementById('why_advice');
    if(deja) { document.body.removeChild(deja); }
    var pos = findPos(obj);
    var param = partId + "choice2";

    var content = "<p>";
    content += "<span class='float_r'><a href='#' title='fermer' class='gris' onclick='$(this).parent().parent().parent().remove();return false;'>";
    content += "<img src='../img/myfnac/boutons/close.gif' alt='fermer' /></a></span>";
    content += "<strong>Ce produit vous est conseillé</strong>";
    switch(Origin)
    {
        case "1":
            content += " en tenant compte de Votre appréciation du produit " + text + "<br />";
            break;
        case "2":
            content += " en tenant compte des nouveautés <br />";
            break;
        case "3":
            content += " en tenant compte de votre centre d'intérêts " + text + " <br />";
            break;
        case "4":
            content += " en tenant compte de votre centre d'intérêts " + text + " <br />";
            break;
        default:
            if(text != "")
                content += " en tenant compte de votre selection " + text + " <br />";
            else
                content += " en tenant compte de vos centres d'intérêts et de votre parcours de navigation sur fnac.com <br />";
            break;
    }

    content += "<span class='gris'>&raquo; <a class='gris' href='#' onclick=\"remoteClick('" + param + "');return false;\">Ne plus en tenir compte</a></span>";
    content += "</p>";

    var popin = document.createElement("DIV");
    popin.id = "why_advice";
    popin.className = "why_advice";
    popin.innerHTML = content;
    document.body.appendChild(popin);

    if(popin.style.display != "block") { popin.style.display = "block"; }
    popin.style.position = "absolute";
    popin.style.zIndex = "99";
    popin.style.left = pos[0] + "px";
    popin.style.top = pos[1] + "px";
}


function popAddSelection(obj, url, e, origin)
{

    if($("#add_selection"))
    {// Detection de la présence de la div dans le code
        $("#add_selection").remove(); // Si la div existe deja, on supprime le code.
    }
    var rec = $.get(url);// Envoi de la requete Ajax

    /* Préparation de la <DIV> de validation de l'action */
    var content = '<div class="add_selection ficheserieciblage" id="add_selection"><p>';
    content += "<span class='float_r'><a href='#' title='fermer' class='gris' onclick='$(this).parent().parent().parent().remove();return false;'>";
    content += "<img src='../img/myfnac/boutons/close.gif' alt='fermer' /></a></span>";
    switch(origin)
    {
        case "666":
            content += "<strong>Cet article a bien été ajouté à votre liste de Noël</strong><br />";
            break;
        default:
            content += "<strong>Cet article a bien été ajouté à votre sélection</strong><br />";
            break;
    }
    content += "</p></div>";
    $("body").append(content); // Création de la popin de la validation d'ajout à la selection
    $("#add_selection").css("position", "absolute"); // CSS - Ajout de la position absolute
    $("#add_selection").css("z-index", "300"); // CSS - Ajout du z-index

    /* Déclaration des variables */
    var recupPosX = e.pageX; // Récupération de la position en X de la souris
    var recupPosY = e.pageY; // Récupération de la position en Y de la souris
    var recupPosIe = findPos(obj); // Récupération de la position de l'objet dans la page
    var h = $("#add_selection").height(); // Récupération de la hauteur de l'objet
    var w = $("#add_selection").width(); // Récupération de la largeur de l'objet

    if($.browser.msie)
    {// Pour internet explorer 6-7
        switch(origin)
        {
            case 'ie': // On regle le probleme pour le placement d'ie dans la fiche intervenant
                var realXIe = recupPosIe[0] - w * 1.5;
                var realYIe = recupPosIe[1] + h;
                break
            default: // On regle le probleme pour le placement d'ie dans myfnac
                var realXIe = recupPosIe[0] - w;
                var realYIe = recupPosIe[1] + h / 2;
                break
        }
        $("#add_selection").css("left", realXIe + "px"); // On attribut le comportement de placement de la popin en X
        $("#add_selection").css("top", realYIe + "px"); // On attribut le comportement de placement de la popin en Y
    } else
    { // Pour firefox 3
        if(recupPosX != undefined || recupPosY != undefined)
        { // Conditionnement pour ne pas que la popin se positionne en bas de page
            var newX = recupPosX - w; // On attribut le comportement de la souris pour le placement de la popin en X
            var newY = recupPosY + h / 2; // On attribut le comportement de la souris pour le placement de la popin en Y
            $("#add_selection").css("left", newX + "px"); // On attribut le comportement de placement de la popin en X
            $("#add_selection").css("top", newY + "px"); // On attribut le comportement de placement de la popin en Y

        }
    }
}



function centerPopin(id)
{
    var elem = document.getElementById(id);
    var page = document.getElementsByTagName("BODY");
    var large = (screen.availWidth - elem.offsetWidth) / 2;
    var haut = (screen.availHeight - elem.offsetHeight) / 2;
    elem.style.left = large + "px";
    elem.style.top = haut + "px";
}

// tronc principal de l'exec après chargement du DOM
function highlightButton()
{
    $(document).ready(function()
    {
        $("img.rHvr").hover(function()
        {
            $(this).css("opacity", 0.5);
        }, function()
        {
            $(this).css("opacity", 1);
        });

        /*Plug pour les input hover */
        $("input[type='image'].rHvr").hover(function()
        {
            //alert("ok");
            $(this).css("opacity", "0.5");
        }, function()
        {
            $(this).css("opacity", "1");
        });

        $("a.contextHelp").click(function()
        {
            if($("div.aidePopin").css("display") == "none")
            {
                var popin = document.createElement("DIV");
                popin.id = "contextHelp";
                popin.innerHTML = $("div.aidePopin").html();
                document.body.appendChild(popin);
                $(popin).css({ position: "absolute", display: "block", "z-index": 999, width: "300px" });
                $(popin).css("cursor", "move");
                $(popin).bind('drag', function(event)
                {
                    $(this).css({
                        top: event.offsetY,
                        left: event.offsetX,
                        opacity: 0.7
                    });
                });
                $(popin).click(function()
                {
                    $(this).css("opacity", "1");
                });
                if(IS_IE) { ifrlayer.make($("div#contextHelp")); }
                centerPopin("contextHelp");
            }
            return false;
        });
    });
}

highlightButton();

// hack   
function adjustCarou()
{
    $(document).ready(function()
    {
        var testPresentList = $("#part3 div").hasClass("mosaiqList");
        if(testPresentList != true)
        {
            $("#ctl02_SwitchControl").css("margin-top", "14px");
        } else
        {
            $("#ctl02_SwitchControl").css("margin-top", "0px");
        }
    });
}


/* Fonction pour la partie Centres d'interets */
function rightArm(menu)
{

    // Déclaration des variables
    var cible2, pos, pos2, posMenu, cibl, large2, posLi, posMenuTetiere, posTempMenuTop, posTempMenuLi;

    // Selection du hasFocus
    if($("ul li", menu).find(".enable2").attr("class") != undefined)
    {
        cible2 = $("ul li", menu).find(".enable2");
    } else
    {
        cible2 = $("ul li", menu).find(".enable");
    }
    // Attribution des valeurs
    pos = $("#MenuRenderContent").position();
    pos2 = $(".menu_Left ul li").position();
    posMenu = $("#MenuRenderContent").position();
    cibl = cible2.parent("li").position();
    large2 = cible2.parent("li").innerWidth();
    posLi = cible2.parent("li").height();
    posMenuTetiere = $("#MenuRenderContent .mfTetiere").height();
    posTempMenuTop = parseInt(posMenu.top);
    posTempMenuLi = parseInt(cibl.top);

    // Browser Detect
    // Déclaration des navigateurs
    var nav = navigator.userAgent.toLowerCase();
    var detect = nav.indexOf("firefox");
    var detect2 = nav.indexOf("safari");
    var detect3 = nav.indexOf("msie");
    // Conditionnement d'affichage
    if(detect != -1 && detect2 == -1)
    { // IE
        var decalage = (large2 - 2) + pos2.left + "px";
    } else if(detect == -1 && detect2 == -1)
    { // Other
        var decalage = ((large2 + 2) + pos2.left) + "px";
    } else if(detect == -1 && detect2 != -1)
    { // Safari
        var decalage = ((large2 - 4) + pos2.left) + "px";
    }

    // Conditionnement du positionnement suivant les n-2 (IE)
    if(detect3 != -1)
    {
        var limit = 20;
        var adjust = 3;
    } else
    {
        var limit = 18;
        var adjust = 5;
    }
    posLi = limit;

    // Attribution des valeurs de positionnement
    // Calcul
    // Position horizontale
    var posLeftArm = parseInt(pos.left + pos2.left + large2);
    // Position verticale
    var posTopArm = parseInt(posMenuTetiere + posTempMenuTop + posTempMenuLi - posLi);

    // Implémentation du bras
    if(typeof (cible2.attr("class")) != "undefined")
    {
        // Ajustement de la position du bras (IE)
        var posArm = posTempMenuLi + adjust;
        // Implémentation
        $("#MenuRenderContent").css("background-image", "url(../img/myfnac/deco/fond_ArmF0F2ED.png)");
        $("#MenuRenderContent").css("background-repeat", "no-repeat");
        $("#MenuRenderContent").css("background-color", "transparent");
        $("#MenuRenderContent").css("background-position", "0px " + posArm + "px");
    }
    // Création de la liaison entre le menu & le contenu
    var arm = document.createElement("DIV");
    arm.id = "arm";
    arm.className = "armOfJustice";
    document.body.appendChild(arm);
    arm.style.position = "absolute";
    arm.style.zIndex = 50;
    arm.style.left = posLeftArm + "px";
    arm.style.top = posTopArm + "px";
    arm.style.background = "url(../img/myfnac/deco/arm.png) no-repeat top left transparent";
    arm.style.display = "block";
    arm.style.width = "40px";
    arm.style.height = "19px";
}

