// block_engine.js

var iex = (document.all); // IE
var nn4 = (document.layers); // Netscape 4
var etat = new Array();

function displayProperty (_styleelt, _prop)
{
    if (typeof (_styleelt.setAttribute) == "undefined")
        _styleelt.display = _prop;
    else
        _styleelt.setAttribute ("display", _prop);
}

function setClass (_id, _class)
{
    classelt = iex ? document.all[_id] : document.getElementById (_id);
    classelt.setAttribute ("class", _class);
    classelt.setAttribute ("className", _class);
}

function setSrc (_id, _img)
{
    _id.setAttribute('src', _img);
}

function toggle_id(_id)
{
    classelt = iex ? document.all[_id] : document.getElementById (_id);
    if (etat[_id] == 0 || etat[_id] == undefined)
    {
        etat[_id] = 1;
        setClass(_id, 'mention');
        setSrc(document.getElementById('img_mention'), 'img/picto_up.gif');
    }
    else 
    {
        etat[_id] = 0;
        setClass(_id, 'mention none');
        setSrc(document.getElementById('img_mention'), 'img/picto_down.gif');
    }
}

// Alternate div block display

function displayBlock (_id, _liste)
{
    for (i in _liste)
    {
        elt = _liste[i];
        if (document.getElementById (elt) != undefined && document.getElementById (elt+"_link") != undefined)
        {
            styleelt = nn4 ? document.layers[elt] : (iex ? document.all[elt].style : document.getElementById (elt).style);
            if (elt == _id)
            {
                displayProperty (styleelt, "block");
                setClass (elt+"_link", "sous_nav_on");
            }
            else
            {
                displayProperty (styleelt, "none");
                setClass (elt+"_link", "sous_nav_off");
            }
        }
    }
    return false;
}

// Scrolling DIV

scrollingDiv = 'scrollBlock';
currentlyScrolling = false;
positionFromTop = 10;

function findPosY (_div)
{
    var divtop = 0;
    if (_div.offsetParent)
    {
        // Ajoute les top de tous les parents
        while (_div.offsetParent)
        {
            divtop += _div.offsetTop
                _div = _div.offsetParent;
        }
    }
    else if (_div.y)
        divtop += _div.y;
    return divtop;
}

function scrollDivToTarget (_targetY)
{
    currentlyScrolling = true;
    var div = iex ? document.all[scrollingDiv] : document.getElementById (scrollingDiv);
    var styleelt = nn4 ? document.layers[scrollingDiv] : (iex ? document.all[scrollingDiv].style : document.getElementById (scrollingDiv).style);
    var pas = 0;

    if (typeof (styleelt.setAttribute) == "undefined")
    {
        divpos = parseFloat (styleelt.paddingTop);
        pas = (_targetY - divpos) * 0.5;
        if (Math.abs(divpos) < 100)
            pas = (_targetY - divpos) * 0.15;
        styleelt.paddingTop = (divpos + pas) + "px";
    }
    else
    {
        if (styleelt.getAttribute ("padding-top") == null)
            divpos = parseFloat (styleelt.paddingTop);
        else
            divpos = parseFloat (styleelt.getAttribute ("padding-top"));
        pas = (_targetY - divpos) * 0.5;
        if (Math.abs (divpos) < 100)
            pas = (_targetY - divpos) * 0.15;
        styleelt.setAttribute ("padding-top", (divpos + pas) + "px");
        styleelt.setAttribute ("paddingTop", (divpos + pas) + "px");
    }
    nextScroll = setTimeout ('scrollDivToTarget ('+_targetY+');', 10);
    if (pas < 0.05 && pas > -0.05)
    {
        currentlyScrolling = false;
        clearTimeout (nextScroll);
    }
}

function scrollDiv ()
{
    var div = iex ? document.all[scrollingDiv] : document.getElementById (scrollingDiv);
    var styleelt = nn4 ? document.layers[scrollingDiv] : (iex ? document.all[scrollingDiv].style : document.getElementById (scrollingDiv).style);
    var scroll = (window.pageYOffset) ? window.pageYOffset : (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
    var divpos = findPosY (div);

    // Si le div est plus haut que la page, on ne scrolle pas
    if (typeof (styleelt.getAttribute) == "undefined")
        divpadding = parseFloat (styleelt.paddingTop);
    else
        divpadding = parseFloat (styleelt.getAttribute ("padding-top"));
    var divsize = div.offsetHeight - divpadding + positionFromTop;
    var windowheight = document.documentElement.clientHeight;
    if (divsize > windowheight)
    {
        setTimeout ('scrollDiv ();', 700);
        return;
    }

    if (scroll < div.startPos)
        scroll = div.startPos;
    if (divpos != scroll)
    {
        scroll = (scroll < divpos) ? 0 : (scroll - divpos + positionFromTop);
        if (currentlyScrolling == false)
            scrollDivToTarget (scroll);
    }
    setTimeout ('scrollDiv ();', 700);
}

function getVar(name)
{
    get_string = document.location.search;         
    return_value = '';

    do { //This loop is made to catch all instances of any get variable.
        name_index = get_string.indexOf(name + '=');

        if(name_index != -1)
        {
            get_string = get_string.substr(name_index + name.length + 1, get_string.length - name_index);

            end_of_value = get_string.indexOf('&');
            if(end_of_value != -1)                
                value = get_string.substr(0, end_of_value);                
            else                
                value = get_string;                

            if(return_value == '' || value == '')
                return_value += value;
            else
                return_value += ', ' + value;
        }
    } while(name_index != -1)

    //Restores all the blank spaces.
    space = return_value.indexOf('+');
    while(space != -1)
    { 
        return_value = return_value.substr(0, space) + ' ' + 
            return_value.substr(space + 1, return_value.length);

        space = return_value.indexOf('+');
    }

    return(return_value);        
}

