
var lastOngletId = false;
var zoomDisplayed  = false;
var curtainVisible = false;

function getElementPosition (e)
{
    var p = {};
    p.x = e.offsetLeft;
    p.y = e.offsetTop;

    var c = e.offsetParent;
    while (c)
    {
        p.x += c.offsetLeft;
        p.y += c.offsetTop;

        c = c.offsetParent;
    }

    return p;
}

function getGlobalMousePosition (e)
{
	var p = { x: e.clientX, y: e.clientY };
	var d = document.documentElement;
	var b = document.body;
	var w = window;

	p.x += (w.scrollX) ? w.scrollX : (d.scrollLeft + b.scrollLeft);
	p.y += (w.scrollY) ? w.scrollY : (d.scrollTop + b.scrollTop);

	return p;
}

function toogleZoom(event)
{
    var el = document.getElementById("zoomproduit");
    var dy = (zoomDisplayed) ? "none" : "block";

    el.style.display=dy;

    zoomDisplayed = !zoomDisplayed;

    el = document.getElementById("onglet-zoom");
    if (el)
    {
        var dy = (zoomDisplayed) ? "hidden" : "";
        el.style.visibility=dy;

        lastOnglet = document.getElementById("onglet-" + lastOngletId);
        if (lastOnglet)
        {
            lastOnglet.style.visibility = '';
        }
        
    }

    toggleCurtain(event, "toogleZoom_callback");
}

function toogleZoom_callback(event)
{
    toogleZoom(event);
    var el = document.getElementById("onglet-zoom");
    if (el)
    {
        var dy = (zoomDisplayed) ? "hidden" : "";
        el.style.display=dy;

        var elOng = document.getElementById("onglet-" + lastOngletId);
        if (elOng)
        {
            elOng.style.display=(!zoomDisplayed) ? "hidden" : "";
        }
    }

    toogleInfos(lastOngletId);
}

function toogleInfos(name)
{
    var lastOnglet = document.getElementById("onglet-" + lastOngletId);
    if (lastOnglet)
    {
        lastOnglet.style.visibility = '';
        document.getElementById(lastOngletId).style.visibility = 'hidden';
    }
    
    var currentOnglet = document.getElementById("onglet-" + name);
    if (currentOnglet)
    {
        document.getElementById(name).style.visibility = '';
        currentOnglet.style.visibility = 'hidden';
        lastOngletId = name;
    }
}
function closeInfos(name)
{
    var currentOnglet = document.getElementById("onglet-" + name);
    if (currentOnglet)
    {
        document.getElementById(name).style.visibility = 'hidden';
        currentOnglet.style.visibility = 'visible';
        lastOngletId = name;
    }
}

function moveZoom (event, element)
{
    var p = getElementPosition (element);
    var d = document.documentElement;
	var b = document.body;
	var w = window;

    p.x -= (w.scrollX) ? w.scrollX : (d.scrollLeft + b.scrollLeft);
	p.y -= (w.scrollY) ? w.scrollY : (d.scrollTop + b.scrollTop);

    var x = Math.round (((event.clientX - p.x) / 918) * 100);
    var y = Math.round (((event.clientY - p.y) / 578) * 100);

    element.style.backgroundPosition = x + "% " + y + "%";
}

function moveNav (event, element)
{
    var p = getElementPosition (element);
    var u = document.getElementById ("navunivers");
    var n;

    for (var i = 1; i < 5; i++)
    {
        n = document.getElementById ("lescategories" + i);
        if (n) break;
    }

    var w = n.offsetWidth - u.offsetWidth;
    var x = Math.round(((event.clientX - p.x) / u.offsetWidth) * w);

    n.style.marginLeft = -x + "px";
}

function showCurtain (event, fn_callback)
{
    var curtain = document.getElementById ("curtain");
    if (curtain == null)
    {
        var bodyHeight = document.height;
        var bodyWidth  = document.width;

        if (typeof bodyWidth == 'undefined')
        {
            bodyWidth  = document.body.offsetWidth;
            bodyHeight  = document.body.offsetHeight;
        }


        var wHeight = (window.innerHeight) ? window.innerHeight : document.body.clientHeight;

        if (wHeight > bodyHeight)
            bodyHeight = wHeight;
        
        curtain    = document.createElement ("div");
        curtain.id = "curtain";
       
        with (curtain.style)
        {
            width           = bodyWidth + "px";
            height          = bodyHeight + "px";
            display         = "none";
            backgroundColor = "black";
            position        = "absolute";
            top             = 0;
            left            = 0;
            opacity         = 0.8;
            MozOpacity      = 0.8;
            filter          = "alpha(opacity=80)";
            zIndex          = 999;
        }

        document.body.appendChild (curtain);
        if (fn_callback != null)
        {

            if (curtain.addEventListener)
                curtain.addEventListener("click",  function () { window[fn_callback]();} , false);
            else if (curtain.attachEvent)
                curtain.attachEvent("onclick",  function () { window[fn_callback]();} );
        }
    }

    curtainVisible = true;
    curtain.style.display = "block";
    Valraiso.CSS.events.hideSelect();

    var el = document.getElementById("zoomproduit");

    moveZoom(event, el);
}

function hideCurtain (event)
{
    var curtain = document.getElementById ("curtain");
    if (curtain != null)
    {
        curtain.style.display = "none";
        curtainVisible = false;
        Valraiso.CSS.events.showSelect();
    }
}

function toggleCurtain (event, fn_callback)
{
    if (curtainVisible) hideCurtain(event);
    else showCurtain(event, fn_callback);
}