function globalInit()
{
    document.onmousemove = getMouseXY;
    window.onscroll = onScroll;
}

function affFieldDiag(o)
{
    var ib = document.getElementById('infobulle');
    var ibc = document.getElementById('infobulle_content');
    var d = null;
    if (o) {
        d = document.getElementById('msg_'+o.id);
        if (d && d.innerHTML) {
            ibc.innerHTML = d.innerHTML;
        }
    }
    if (ibc.innerHTML) {
        ib.style.top = (mouseY - 40) + 'px';
        ib.style.left = (mouseX + 1) + 'px';
        ib.style.display = 'block';
    } else {
        ib.style.display = 'none';
    }
}

function hideFieldDiag(o)
{
    var ib = document.getElementById('infobulle');
    if (ib) {
        ib.style.display = 'none';
        document.getElementById('infobulle_content').innerHTML = '';
    }
}

function initFieldsDiag(a)
{
    if (!a && aFields) {
        a = aFields;
        if (aFieldsCaractProduct && aFieldsCaractProduct.length) {
            a = a.concat(aFieldsCaractProduct);
        }
    }
    for (var i = 0 ; i < a.length ; i++) {
        if (document.getElementById('msg_'+a[i])) {
            if (document.getElementById('msg_'+a[i]).innerHTML) {
                setErrorField(a[i]);
            } else {
                setEmptyField(a[i]);
            }
        }
    }
}

function resetFieldsDiag(a)
{
    if (!a && aFields) {
        a = aFields;
        if (aFieldsCaractProduct && aFieldsCaractProduct.length) {
            a = a.concat(aFieldsCaractProduct);
        }
    }
    for (var i = 0 ; i < a.length ; i++) {
        if (document.getElementById('msg_'+a[i])) {
            document.getElementById('msg_'+a[i]).innerHTML = "";
            setEmptyField(a[i]);
        }
    }
}

function setEmptyField(field)
{
    var a = document.getElementById('alert_'+field);
    if (a) {
        a.innerHTML = '';
        a.style.display = 'none';
    } else {
        if (document.getElementById(field))
            document.getElementById(field).style.backgroundImage = '';
    }
}

function setValidField(field)
{
    var a = document.getElementById('alert_'+field);
    if (a) {
        a.innerHTML = '<img src="'+base_url+'images/valid_field.gif" alt="erreur" />';
        a.style.display = 'inline';
    } else {
        var a = document.getElementById(field);
        if (a)
            a.style.backgroundImage = 'url('+base_url+'images/valid_field.gif)';
    }
}

function setErrorField(field)
{
    var o = document.getElementById(field);
    var a = document.getElementById('alert_'+field);
    if (a) {
        a.innerHTML = '<img src="'+base_url+'images/error_field.gif" alt="erreur" />';
        a.style.display = 'inline';
    } else {
        o.style.backgroundImage = 'url('+base_url+'images/error_field.gif)';
    }
    o.setAttribute('onmouseout', 'hideFieldDiag(this);');
    o.onmouseout = function() {
        hideFieldDiag(this);
    }
    o.setAttribute('onmouseover', 'affFieldDiag(this);');
    o.onmouseover = function() {
        affFieldDiag(this);
    }
}

function setPageSize()
{
    pageScroll = getScrollXY();
    var p = getPageSize();
    pageWidth = p[0];
    pageHeight = p[1];
}

function onScroll()
{
    setPageSize();
    if (oMasksHandler.getCrt()) {
        oMasksHandler.onScroll();
    }
}

function getMouseXY(e)
{
    if (ie) {
        mouseX = event.clientX + document.body.scrollLeft;
        mouseY = event.clientY + document.body.scrollTop;
    } else {
        mouseX = e.pageX;
        mouseY = e.pageY;
    }
    if (mouseX < 0){mouseX = 0;}
    if (mouseY < 0){mouseY = 0;}

    var ib = document.getElementById('infobulle');
    if (ib && ib.style.display == 'block') {
        affFieldDiag();
    }
}

function OnOff(o)
{
    if (typeof(o) == "string") {
        o = document.getElementById(o);
    }
    if (o.style.display == "block") {
        o.style.display = "none";
    } else {
        o.style.display = "block";
    }
}

function expandTreeCategorie(code, tree, url)
{
    tree = tree+'_'+code;
    if ($('sub_'+tree).innerHTML) {
        $('sub_'+tree).innerHTML = "";
        $(tree).className = "";
        $('sub_'+tree).display = 'none';
    } else {
        $(tree).className = "tree-open";
        $('sub_'+tree).style.display = 'block';
        ajax_updater("sub_"+tree, url, 'code='+encodeURIComponent(code));
    }
}

function trOver(o)
{
    o.className = o.className == "over" ? "" : "over";
}