/02.* Javascript - Lactalis */

/***** Index *****/
// 00 - rescueFrame
// 10 - Slider
// 15 - Custom file
// 20 - Tooltips
// 25 - Converter
// 30 - Mover
// 35 - Preview layer
// 40 - Tabs
// 45 - Update ddZone
// 50 - Custom box
// 55 - Custom radio
// 60 - Zoom
// 65 - Switch add
// 70 - Modal
// 75 - Visio
// 80 - Clowns
// 90 - Tips
// 99 - onLoad
/***************/

/***** 00 - rescueFrame *****/
function rFrame() {
    if (isIE && !isIE7) {
        var o = arguments[0];
        var parent = o.parentNode;
        var elem = __('iframe', 'rescue', parent)[0];
        if (!elem) {
            var frame = document.createElement('iframe');
            elem = parent.insertBefore(frame, arguments[0]);
            if (elem) {
                elem.className = 'rescue';
                elem.style.position = 'absolute';
                elem.style.filter = 'alpha(opacity=0);';
            }
        }
        if (elem) {
            elem.style.left = arguments[0].offsetLeft + 'px';
            elem.style.top = arguments[0].offsetTop + 'px';
            elem.style.width = arguments[0].offsetWidth + 'px';
            elem.style.height = arguments[0].offsetHeight + 'px';
        }
    }
}
function rFrameEnd() {
    if (isIE && !isIE7) {
        var parent = arguments[0].parentNode;
        var frame = __('iframe', 'rescue', parent)[0];
        var elem = parent.removeChild(frame);
    }
}

/***** 10 - Slider *****/
var sActive = new Array();
function sBuilder(o, k) {

    var a;
    var t = __("div", "item", o);
    o.id = "s" + k;
    for (var i = 0; i < t.length; i++) {
        t[i].id = "s" + k + "t" + i;

        var s = _("s" + k + "t" + i);
        s.p = k;
        s.i = i;
        s.h = __("div|h2", "head", s)[0];
        s.h.id = "s" + k + "t" + i + "h";
        s.c = __("div", "cont", s)[0];
        s.c.id = "s" + k + "t" + i + "c";

        var h = _(t[i].id, "a", 0);
        if (h) {
            s.h.l = h.href;
            h.removeAttribute("href");
        }

        s.a = (s.className.indexOf("collapse") != -1) ? false : true;
        s.style.overflow = "hidden";
        s.style.height = (!s.a || s.c.offsetHeight < 20) ? s.h.offsetHeight + "px" : (s.h.offsetHeight + s.c.offsetHeight) + "px";
        s.c.style.display = "block";

        _eAdd(s.h, "click", sTo, false, s, false);
        if (s.a == true) {
            sActive[s.p] = s;
        }
    }


}

function sClear() {
    clearInterval(sInter);
}
function sRestart() {
    sInter = setInterval("sAuto();", 4000);
}

var sTimer;
var sAdd = null;
var sSteps = 8;
var sFreq = 30;
var sRatio = null;
var sProgress = false;

function sTrans(s) {
    var c = _("edito");
    var n = (sActive[s.p]) ? sActive[s.p] : false;
    var a = (sAdd == null) ? Math.round(s.c.offsetHeight / sSteps) : sAdd;
    var r = (sRatio == null && n) ? n.c.offsetHeight / s.c.offsetHeight : sRatio;
    if (s.offsetHeight + a < s.h.offsetHeight + s.c.offsetHeight && s.c.offsetHeight > 20) {
        s.style.height = (s.offsetHeight + a) + "px";
        if (n && n.c.offsetHeight > 20) {
            n.style.height = (n.offsetHeight - Math.round(a * r)) + "px";
        }

        sTimer = setTimeout("sTrans(_(\"s" + s.p + "t" + s.i + "\"));", sFreq);
    } else {
        if (s.c.offsetHeight > 20) {
            s.style.height = (s.h.offsetHeight + s.c.offsetHeight) + "px";
        }
        if (n) {
            n.style.height = n.h.offsetHeight + "px";
        }

        clearTimeout(sTimer);
        sActive[s.p] = s;
        sRatio = null;
        sAdd = null;
        sProgress = false;
    }

    var p = _("s" + s.p);
    var t = p.offsetHeight;
    if (c != null && (c.offsetHeight < t || p.l.h < t)) {
        c.style.height = t - 40 + "px";
    }
}

function sTo(s, a) {
    if (a == false) {
        clearInterval(sInter);
        var p = _("s" + s.p);
        p.onmouseover = null;
        p.onmouseout = null;
    }
    if (!sProgress) {
        clearTimeout(sTimer);
        var a = (sActive[s.p] === s) ? true : false;
        if (!a) {
            sProgress = true;
            sTrans(s);
        } else if (s.h.l) {
            document.location = s.h.l;
        }
    }
}

var sInter;
var sCurrent = 1;
var sStoped = false;
function sAuto() {
    sTo(_("s0t" + sCurrent), true);
    if (sCurrent == 0) { clearInterval(sInter); }
    sCurrent++;
    if (!_("s0t" + sCurrent)) { sCurrent = 0; }
}

/***** 15 - Custom file *****/
function cfBuilder(f) {

    // Create HTML
    var v = document.createElement("span");
    v.className = "cfValue inputFile";
    f.v = v;
    f.parentNode.insertBefore(v, f);

    var t = (f.value.indexOf("\\") != -1) ? f.value.split("\\") : f.value.split("/");
    var b = t[t.length - 1];
    v.innerHTML = b;

    var s = document.createElement("span");
    s.className = "cfSkin";
    f.s = s;
    f.parentNode.insertBefore(s, f);
    s.appendChild(f);
    if (isIE) {
        f.style.filter = "alpha(opacity=0);";
    } else {
        f.style.opacity = "0";
    }
    _S("add", f, "cfInput");
    _S("del", f, "inputFile");

    _eAdd(f, "change", cfUpdate, false);

}

function cfUpdate() {
    var t = (this.value.indexOf("\\") != -1) ? this.value.split("\\") : this.value.split("/");
    var b = t[t.length - 1];
    this.v.innerHTML = b;
}


/***** 20 - Tooltips *****/
function cBuilder(o) {
    _eAdd(o, "mouseover", cToolTip, false);
    _eAdd(o, "mousemove", function cToolPos() {
        try {
            var e = arguments[arguments.length - 1];
            this.t.style.display = "block";
            this.t.style.top = (e.clientY + 7 + document.documentElement.scrollTop) + "px";
            this.t.style.left = (e.clientX + document.documentElement.scrollLeft) + "px";
        } catch (e) { }
    }, false);
    _eAdd(o, "mouseout", function cToolDel() {
        if (this.t) {
            document.body.removeChild(this.t);
            this.t = null;
        }
    }, false);
    _eAdd(o, "mouseup", function cToolDel() {
        if (this.t) {
            document.body.removeChild(this.t);
            this.t = null;
        }
    }, false);
}

function cToolTip() {

    // Create object
    this.s = (this.title) ? this.title : this.s;
    this.t = document.createElement("div");
    this.c = document.createTextNode(this.s);
    this.t.appendChild(this.c);
    this.r = document.body.appendChild(this.t);
    if (this.r) { this.setAttribute("title", ""); this.setAttribute("alt", ""); }
    this.i = this.getElementsByTagName("img");
    if (this.i.length != 0) {
        for (var i = 0; i < this.i.length; i++) {
            this.i[i].setAttribute("alt", "");
            this.i[i].setAttribute("title", "");
        }
    }

    // Style
    this.t.className = "tooltiplayer";
    this.t.style.display = "none";

}

/***** 10 - Field cleaner ******/
function fCleaner() {
    if (this.value == this.title) {
        this.value = "";
    }
}
function fRestore() {
    if (this.value == "") {
        this.value = this.title;
    }
}

/***** 25 - Tooltips *****/
function cvBuilder(o) {

    var cvInputs = [_("cvCount"), _("cvQty"), _("cvNewCount"), _("cvResult")];
    for (var i = 0; i < cvInputs.length; i++) {
        _eAdd(cvInputs[i], "keypress", cvSave, false);
        _eAdd(cvInputs[i], "keyup", cvUpdate, false);
    }

}
function cvSave() {
    var regInt = new RegExp("^[0-9]+$", "gi");
    var s = regInt.test(this.value);
    if (s || this.value == "") {
        this.backup = this.value;
    }
}
function cvUpdate() {
    var regInt = new RegExp("^[0-9]+$", "gi");
    var s = regInt.test(this.value);

    var cvC = parseInt(_F("cvCount"));
    var cvQ = parseInt(_F("cvQty"));
    var cvN = parseInt(_F("cvNewCount"));
    var cvR = _("cvResult");

    if (s || this.value == "") {

        if (cvC != "" && cvQ != "" && cvN != "") {
            var r = Math.round(cvQ * cvN / cvC);
            cvR.value = (typeof (r) == "number" && r.toString() != "NaN") ? r : "";
        }

    } else {
        this.value = this.backup;
    }
}

/***** 30 - Mover *****/
var mTimer;
var mDelta = 10;
var mSpeed = 30;
var mCurrent = null;

function mBuilder(o) {
    if (!o.builded) {
        o.builded = true;
        var e = __("div", "edito")[0];
        var s = o;
        var c = __("div|a|li", "item", s);
        if (c[0]) {
            var l = Math.floor(s.offsetWidth / c[0].offsetWidth);

            if (c.length > l) {

                // Main
                s.style.position = "relative";

                // Inner
                var pi = __("div", "mInner", o)[0];
                if (!pi) {
                    // Inner content
                    var i = document.createElement("div");
                    i.className = "mInner";
                    s.appendChild(i);
                } else {
                    var i = pi;
                }
                i.style.position = "relative";
                //i.style.width = i.offsetWidth+"px";
                //i.style.overflow = "hidden";
                i.style.height = "auto";

                // Content
                var m = __("div", "mContent", o)[0];
                if (!m) {
                    var m = document.createElement("div");
                    m.className = "mContent";
                    i.appendChild(m);
                }
                m.style.position = "relative";
								
								var hA = 0;
								var iop = __("li", "item", s);
								if (iop.length > 0) {
									var tL = 34;
									
									for (var poi = 0; poi < iop.length; poi++) {
										tL += parseInt(c[poi].offsetWidth);
										var al = __("a", "clown", c[poi])[0];
										hA = (al.offsetHeight > h) ? al.offsetHeight : h;
									}
									
									var oil = __('ul','',s)[0];
									oil.style.width = tL + 'px';
									m.style.width = tL + 'px';
								}
                else  m.style.width = c[0].offsetWidth * c.length + "px";

                // Has clear
                var cr = __("div", "clear", s);
                if (cr[cr.length - 1].parentNode == s) {
                    m.appendChild(cr[cr.length - 1]);
                }
								
								

                // Show
                var h = 0;
                for (var j = 0; j < c.length; j++) {
                    h = (c[j].offsetHeight > h) ? c[j].offsetHeight : h;
										
                    if (!pi) {
                        m.appendChild(c[j]);
                    }
                }
								
								
                // Previous tool
                var p = document.createElement("div");
                p.className = "mPrev";
                s.appendChild(p);
                if (e) {
                    p.style.height = h + "px"
                }

                // Next tool
                var n = document.createElement("div");
                n.className = "mNext";
                s.appendChild(n);
                if (e) {
                    n.style.height = h + "px"
                }

                n.m = p.m = m;

                // Events
                _eAdd(p, "mousedown", function pDown() { mCurrent = this.m; mPrev(); }, false);
                _eAdd(p, "mouseup", function pUp() { mCurrent = null; clearTimeout(mTimer); }, false);
                _eAdd(p, "mouseout", function pOut() { mCurrent = null; clearTimeout(mTimer); }, false);

                _eAdd(n, "mousedown", function nDown() { mCurrent = this.m; mNext(this.m); }, false);
                _eAdd(n, "mouseup", function nUp() { mCurrent = null; clearTimeout(mTimer); }, false);
                _eAdd(n, "mouseout", function nOut() { mCurrent = null; clearTimeout(mTimer); }, false);
            } else {
                var ti = __("div", "mInner", o)[0];
                if (ti) {
                    _S("del", ti, "mInner");
                }
                var tc = __("div", "mContent", o)[0];
                if (tc) {
                    _S("del", tc, "mContent");
                }
            }
        }
    }
}
function mPrev() {
    clearTimeout(mTimer);
    var n = mCurrent.offsetLeft + mDelta;
    if (n > 0) {
        mCurrent.style.left = "0px";
        clearTimeout(mTimer);
    } else {
        mCurrent.style.left = n + "px";
        mTimer = setTimeout("mPrev();", mSpeed);
    }
}
function mNext() {
    clearTimeout(mTimer);
    var n = mCurrent.offsetLeft - mDelta;
    var nw = mCurrent.offsetWidth;
    var w = mCurrent.parentNode.offsetWidth;
    if (n + nw < w) {
        mCurrent.style.left = -(nw - w) + "px";
        clearTimeout(mTimer);
    } else {
        mCurrent.style.left = n + "px";
        mTimer = setTimeout("mNext();", mSpeed);
    }
}

/***** 35 - Preview layer *****/
var plDelay = null;
var plNext = null;
var plCurrent = null;

function plBuilder(o, i) {
    o.c = null;
    var pTab = __("div", "item", o);
    for (var j = 0; j < pTab.length; j++) {

        var p = pTab[j];
        var l = __("div", "layer", p)[0];
        p.l = l;
        l.p = p;
        p.x = _C("x", p);
        p.y = _C("y", p);
        p.p = false;

        var c = __("div", "caller", p)[0];
        c.o = o;
        c.p = p;
        p.c = c;

        // Events
        _eAdd(c, "mouseover", function pLayerDelay() {
            plNext = this;
            plDelay = setTimeout("pLayerPos();", 300);
        }, false);
        _eAdd(c, "mouseout", function pLayerClear() {
            clearTimeout(plDelay);
        }, false);

        _eAdd(l, "mouseout", function pLayerDelay() {
            plDelay = setTimeout("pLayerDel();", 300);
        }, false);
        _eAdd(l, "mousemove", function pLayerClear() {
            clearTimeout(plDelay);
        }, false);
    }
}
function pLayerPos() {
    try {
        if (plCurrent) {
            pLayerDel();
        }
        if (!plNext.p.p) {
            document.body.appendChild(plNext.p.l);
            plNext.p.p = true;
        }
        plNext.p.l.style.left = (_C("x", plNext) + (plNext.offsetWidth / 2) - plNext.p.l.offsetWidth / 2) + "px";
        plNext.p.l.style.top = (_C("y", plNext) + (plNext.offsetHeight / 2) - plNext.p.l.offsetHeight / 2) + "px";
        _S("add", plNext.p.l, "brandon");
        rFrame(plNext.p.l);
        plCurrent = plNext.p.l;
    } catch (e) { }
}
function pLayerDel() {
    rFrameEnd(plCurrent.p.l);
    plCurrent.p.l.removeAttribute("style");
    plCurrent.p.appendChild(plCurrent.p.l);
    plCurrent.p.p = false;
    _S("del", plCurrent.p.l, "brandon");
    plCurrent = null;
}

/****** 40 - Tabs *****/
var tGroups = new Array();
function tGroup(elem, current) {
    this.elem = elem;
    this.current = current;
    tGroups[tGroups.length] = this;
}

function tBuilder(o, i) {
    var rebuild = (!o.id) ? false : true;
    var tActive = null;
    new tGroup(o, null);
    o.id = 'tabs' + i;
    var tLinks = _('tabs' + i, 'ul', 0, 'li', -1);
    for (var j = 0; j < tLinks.length; j++) {
        var t = _('tabs' + i, 'ul', 0, 'li', j);
        _('tabs' + i, 'ul', 0, 'li', j, 'a', 0).href = 'javascript:tChange(' + i + ',' + j + ');';
        t.onmouseover = function () { _S('add', this, 'hover'); }
        t.onmouseout = function () { _S('del', this, 'hover'); }
    }
    var tSub = __('div', 'tab', _('tabs' + i));
    for (var j = 0; j < tSub.length; j++) {
        tSub[j].id = 'tabs' + i + '_' + j;
    }
    if (!rebuild) {

        // Set active
        for (var j = 0; j < tSub.length; j++) {
            if (tSub[j].className.indexOf("on") != -1) {
                tActive = j;
                break;
            }
        }

        if (tActive != null) {
            tChange(i, tActive);
        } else {
            tChange(i, 0);
        }
    }
}

function tChange(index, tab) {
    if (tGroups[index].current != null && tGroups[index].current != tab) {
        _S('add', _('tabs' + index + '_' + tGroups[index].current), 'off');
        _S('del', _('tabs' + index, 'ul', 0, 'li', tGroups[index].current), 'on');
    }
    _S('del', _('tabs' + index + '_' + tab), 'off');
    _S('add', _('tabs' + index, 'ul', 0, 'li', tab), 'on');
    tGroups[index].current = tab;
}

/***** 50 - Custom box *****/
function cBoxBuilder(o, i) {
    o.id = 'cBox' + i;
    o.i = _('cBox' + i, 'input', 0);
    if (o.i.checked == true) {
        _S('add', o, 'cBoxOn');
    }
    var l = _('cBox' + i, 'label', 0);
    l.o = o;
    l.onmouseover = function () { _S('add', this.o, 'cBoxHover'); }
    l.onmouseout = function () { _S('del', this.o, 'cBoxHover'); }
    l.onclick = function () { cBoxClick(this.o.id); }
}

function cBoxClick(id) {
    if (_(id).i.disabled == false) {
        if (_(id, 'input', 0).checked == true) {
            _S('del', _(id), 'cBoxOn');
        } else {
            _S('add', _(id), 'cBoxOn');
        }
    }
}

/***** 55 - Custom radio *****/
function cRadioBuilder(o, i) {
    // Register parent form
    var p = o.parentNode;
    while (p.parentNode && p.tagName.toLowerCase() != "form") {
        p = p.parentNode;
    }
    o.id = 'cRadio' + i;
    o.i = _('cRadio' + i, 'input', 0);
    o.m = _('cRadio' + i, 'img', 0);
    o.i.o = o;
    if (o.i.checked == true) {
        _S('add', o, 'cRadioOn');
    }
    o.g = p[_('cRadio' + i, 'input', 0).name];
    var l = _('cRadio' + i, 'label', 0);
    l.o = o;
    l.onmouseover = function () { _S('add', this.o, 'cRadioHover'); }
    l.onmouseout = function () { _S('del', this.o, 'cRadioHover'); }
    l.onclick = function () { cRadioClick(this.o.id); }

    // Cover choice
    if (!o.i.onclick && __("div", "cRadio", _("cover"))[i] == o) {
        o.i.onclick = function () {
            var r = _("preview");
            var z = Math.round(Math.random() * 100000);
            if (r) {
                var n = o.m.src.replace("/Thumb/", "/Detail/");
                r.src = n + "?r=" + z;
            }
        }
        if (o.i.checked) {
            o.i.onclick();
        }
        // Default
        if (o.g.length - 1 == i && !_F(p.name, o.g[0].name)) {
            o.g[1].checked = true;
            _S('add', o.g[1].o, 'cRadioOn');
            o.g[1].onclick();
        }
    }
}

function cRadioClick(id) {
    var g = _(id).g;
    if (_(id).i.disabled == false) {
        for (var i = 0; i < g.length; i++) {
            if (g[i].o == _(id)) {
                _S('add', g[i].o, 'cRadioOn');
            } else {
                _S('del', g[i].o, 'cRadioOn');
            }
        }
    }
}
/***** 60 - Zoom *****/
function zBuilder(o) {
    var i = o.getElementsByTagName("img")[0];
    _eAdd(i.parentNode, "mouseover", function zOver() {
        if (!i.z) {
            var z = document.createElement("img");
            z.src = i.src;
            document.body.appendChild(z);

            z.style.position = "absolute";
            z.style.width = "auto";
            z.style.top = (_("archives")) ? (_C("y", i) - 50) + "px" : (_C("y", i) - 100) + "px";   // cf: nico placer en haut ? droite
            z.style.left = _C("x", i) + 50 + "px";
            i.z = z;
        }
    }, false);
    _eAdd(i.parentNode, "mouseout", function zOut() {
        if (i.z) {
            document.body.removeChild(i.z);
            i.z = null;
        }
    }, false);
}

/***** 65 - Switch add *****/
function addSwitch(url) {
    var p = _("addPlayer");
    if (p) {
        var b = "";
        b += "<object id=\"FLVPlayer\" type=\"application/x-shockwave-flash\" data=\"" + baseUrl + "/Site/Includes/Flashs/FLVplayer.swf\" width=\"485\" height=\"394\">\n";
        b += "\t<param name=\"movie\" value=\"" + baseUrl + "/Site/Includes/Flashs/FLVplayer.swf\" />\n";
        b += "\t<param name=\"wmode\" value=\"transparent\" />\n";
        b += "\t<param name=\"FlashVars\" value=\"movieUrl=" + url + "&amp;autoPlay=true\" />\n";
        b += "</object>\n";
        p.innerHTML = b;
    }
}

/***** 70 - Modal *****/
function mShow(o, t) {

    // Add outter
    if (!_("outter")) {


        var b = document.createElement("div");
        if ((o.id == "modalAddToPlanning") && (isIE)) {
            o.parentNode.appendChild(b);
        } else {
            document.body.appendChild(b);
        }
        b.className = "outter";
        b.id = "outter";

    }

    var b = _("outter");
    _S("del", b, "loaded");
    var f = (t == undefined) ? 3 : 0.1;
    b.style.opacity = f / 10;
    if (isIE) {
        b.style.filter = "alpha(opacity=" + f * 10 + ")";
    }

    // Check opened
    if (b.style.display == "block") {
        mHide();
    }

    b.m = o;
    b.style.display = "block";
    rFrame(b);
}

function mSize(o, t) {
    // Show
    var b = _("outter");
    _S("add", b, "loaded");
    _S("add", __("div", "container")[0], "noprint");
    _S("add", o, "modaled");

    // Events
    //_eAdd(b,"click",mHide,false);

    if (t == undefined || t == null) {
        o.style.marginLeft = -(o.offsetWidth / 2) + "px";
        o.style.marginTop = -(o.offsetHeight / 2) + "px";

        // Events
        var b = __("div", "closer", o)[0];
        if (b) {
            _eAdd(b, "click", mHide, false);
        }
    } else {
        o.style.position = "absolute";
        var c = _C("y", t);
        var b = (isIE || isSafari) ? c + document.documentElement.scrollTop + document.body.scrollTop : c;
        o.style.top = b + "px";
        o.style.left = _C("x", t) + "px";
        o.style.width = t.offsetWidth + "px";
        o.style.height = t.offsetHeight + "px";
        var a = o.getElementsByTagName("table")[0];
        if (a) {
            a.style.height = t.offsetHeight + "px";
        }
    }
}

function mHide() {

    var o = _("outter");
    _S("del", __("div", "container")[0], "noprint");
    if (o && o.m) {
        _S("del", o.m, "modaled");
        switch (o.m.id) {
            case 'quizz':
            case 'modalAddToPlanning':
            case 'modalAddMenuOrRecipe':
            case 'quizzEveilBio':
            case 'games':
						case 'printWWOimages':
                // nothing
                break;
            default:
                o.m.innerHTML = "";
                break;
        }
        o.style.display = "none";
        rFrameEnd(o);
        o.parentNode.removeChild(o);
    }
}

/***** 75 - Visio *****/
function vsBuilder(vs) {
    var p = __("div", "previewed", vs)[0];
    var v = __("div", "views", vs)[0];
    vs.c = null;
    if (p) {
        vs.pi = __("div", "item", p);
        vs.vi = __("div", "item", v);
        if (vs.pi.length == vs.vi.length) {
            for (var i = 0; i < vs.pi.length; i++) {
                // Object
                var o = vs.vi[i].getElementsByTagName("object")[0];
                vs.pi[i].o = (o) ? o : null;
                // Previews
                vs.pi[i].v = vs;
                vs.pi[i].i = i;
                vs.pi[i].onclick = vsShow;
                // Activ
                if (_S("check", vs.pi[i], "on") && _S("check", vs.vi[i], "on")) {
                    vs.c = i;
                }
            }
        }
    }
}
function vsShow() {
    if (this.v.c != null) {
        _S("del", this.v.pi[this.v.c], "on");
        _S("del", this.v.vi[this.v.c], "on");
        var o = this.v.pi[this.v.c].o;
        if (o) {
            var p = o.parentNode;
            var b = o.cloneNode(true);
            p.innerHTML = "";
            p.appendChild(b);
            this.v.pi[this.v.c].o = b;
        }
    }
    _S("add", this.v.pi[this.i], "on");
    _S("add", this.v.vi[this.i], "on");
    this.v.c = this.i;
}

/***** 80 - Clowns *****/
function clBuilder(o) {
    var c = __("div|a|li", "clown", o);
    var h = 0;
    // Take higher
    for (var i = 0; i < c.length; i++) {
        if (c[i].style.height != "") {
            h = parseInt(c[i].style.height);
            break;
        }
        h = (c[i].offsetHeight > h) ? c[i].offsetHeight : h;
    }
    // Set higher
    for (var i = 0; i < c.length; i++) {
        c[i].style.height = h + "px";
    }
    var y1 = __("div", "mPrev", o);
    var y2 = __("div", "mNext", o);
    if (y1.length == 1 && y2.length == 1) {
        var u1 = c[0].parentNode;
        var u2 = c[0].parentNode.parentNode;
        var nmh = (u1.offsetHeight > u2.offsetHeight) ? (u1.offsetHeight + 2) : (u2.offsetHeight + 2);
        y1[0].style.height = nmh + "px";
        y2[0].style.height = nmh + "px";
        //y1[0].style.height = (u1.offsetHeight+2)+"px";
        ////y2[0].style.height = (u1.offsetHeight+2)+"px";
    }
}

/***** 90 - Tips *****/
var tpCurrent = null;
function tpBuilder(o, i) {
    o.id = "tp" + i;
    var l = _("tp" + i, "a", 0);
    l.href = "javascript:tpShow(\"tp" + i + "\");";
    if (_S("check", o, "on")) {
        tpCurrent = o.id;
    }
}

function tpShow(i) {
    if (tpCurrent != null && tpCurrent != i) {
        tpHide(tpCurrent);
    }
    _S('add', _(i), 'on');
    tpCurrent = i;
}

function tpHide(i) {
    if (_(i)) {
        _S('del', _(i), 'on');
    }
}

/***** 99 - onLoad *****/
function wLoad() {
    // DIV parser
    var pTab = __("div", "previews|dragable|dropzone");
    for (var i = 0; i < pTab.length; i++) {

        // 35 - Preview layer
        if (_S("check", pTab[i], "previews")) {
            plBuilder(pTab[i], i);
        }

        // Drag
        if (_S("check", pTab[i], "dragable") && drBuilder) {
            drBuilder(pTab[i]);
        }

        // Drop
        if (_S("check", pTab[i], "dropzone") && dzBuilder) {
            dzBuilder(pTab[i]);
        }
    }

    // 15 - Custom file
    var cfTab = __("input", "customFile");
    for (var i = 0; i < cfTab.length; i++) {
        cfBuilder(cfTab[i]);
    }

    // 100 - Refresh
    wRefresh();

    // 20 - Tooltips
    var cToolTipTab = __("a", "tooltip");
    for (var i = 0; i < cToolTipTab.length; i++) {
        cBuilder(cToolTipTab[i]);
    }

    // 75 - Visio
    var vs = __("div", "visio");
    for (var i = 0; i < vs.length; i++) {
        vsBuilder(vs[i]);
    }

    // 10 - Field cleaner
    var fc = __("input", "fCleaner");
    for (var i = 0; i < fc.length; i++) {
        fc[i].onfocus = fCleaner;
        fc[i].onblur = fRestore;
    }
}
_eAdd(window, "load", wLoad, false);

/***** 100 - Refresh *****/
function wRefresh(s) {

    var c = (!s) ? "slides|mover|tabs|cBox|cRadio|clowns|zoom|tip" : s;
    var taTab = (c.indexOf('tabs') != -1) ? true : false;
    var cbTab = (c.indexOf('cBox') != -1) ? true : false;
    var crTab = (c.indexOf('cRadio') != -1) ? true : false;
    var clTab = (c.indexOf('clowns') != -1) ? true : false;
    var zoTab = (c.indexOf('zoom') != -1) ? true : false;
    var tiTab = (c.indexOf('tip') != -1) ? true : false;
    var srTab = (c.indexOf('search') != -1) ? true : false;
    var mvTab = (c.indexOf('mover') != -1) ? true : false;
    var slTab = (c.indexOf('slides') != -1) ? true : false;

    // DIV parser
    var pTab = __("div", c);
    for (var i = 0; i < pTab.length; i++) {

        // 80 - Clowns
        if (_S("check", pTab[i], "clowns") && clTab) {
            clBuilder(pTab[i]);
        }

        // 10 - Slider
        if (_S("check", pTab[i], "slides") && slTab) {
            sBuilder(pTab[i], i);
        }

        // 30 - Mover
        if (_S("check", pTab[i], "mover") && mvTab) {
            mBuilder(pTab[i]);
        }

        // 40 - Tabs
        if (_S("check", pTab[i], "tabs") && taTab) {
            tBuilder(pTab[i], i);
        }

        // 50 - Custom box
        if (_S("check", pTab[i], "cBox") && cbTab) {
            cBoxBuilder(pTab[i], i);
        }

        // 55 - Custom radio
        if (_S("check", pTab[i], "cRadio") && crTab) {
            cRadioBuilder(pTab[i], i);
        }

        // 90 - Tips
        if (_S("check", pTab[i], "tip") && tiTab) {
            tpBuilder(pTab[i], i);
        }
    }

    // Search
    if (_("filters") && _("resum") && srTab) {
        var o1 = _("resum");
        var o2 = _("filters");
        var bt1 = __("div", "closer", o1)[0];
        /// default state open except "searchtab found"
        o1.style.display = srTab ? "block" : "none";
        o2.style.display = srTab ? "none" : "block";

        bt1.onclick = function () {
            o1.style.display = "none";
            o2.style.display = "block";
        }
    }

    // TD parser
    var tTab = __("td", "zoom|tip");
    for (var i = 0; i < tTab.length; i++) {

        // 60 - Zoom
        if (_S("check", tTab[i], "zoom") && zoTab) {
            zBuilder(tTab[i]);
        }

        // 90 - Tips
        if (_S("check", tTab[i], "tip") && tiTab) {
            tpBuilder(tTab[i], i);
        }

    }

    /****** Styles ******/
    var r = _("rings");
    if (r) {
        var h = r.parentNode.offsetHeight;
        var c = Math.floor((h - 80) / 20);
        r.style.height = (c * 20) + "px";
    }
    var r2 = _("rings2");
    if (r2) {
        var h = r2.parentNode.offsetHeight;
        var c = Math.floor((h - 120) / 30);
        r2.style.height = (c * 30) + "px";
    }
    /*
    var nl = _("navLeft");
    var ed = _("edito");
    if(ed && nl){
    if(isIE && !isIE7){
    ed.style.height = nl.offsetHeight-40+"px";
    } else {
    ed.style.minHeight = nl.offsetHeight-40+"px";
    }
    }
    */

}

/// AddonFunctions.
function checkTextAreaReturn(event) { if (event.keyCode == 13) { event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); } }

function ieSiteWidth() {
    var w = document.documentElement.offsetWidth;
    if (w > 1150) {
        return "1150px";
    } else {
        if (w > 990) {
            return w + "px";
        } else {
            return "990px";
        }
    }
}
function ieSiteMargin() {
    var w = document.documentElement.offsetWidth;
    if (w > 1150) {
        return "0 0 0 -575px";
    } else {
        if (w > 990) {
            return "0 0 0 -" + Math.round(w / 2) + "px";
        } else {
            return "0 0 0 -495px";
        }
    }
}

function goInfoBulle(o, type) {
    if (isIE) {
        o.childNodes[1].style.display = type;
    } else {
        o.down().next().style.display = type;
    }
}

/* Modal Quizz */
function openQuizzEveilBio() {
    mShow($("quizzEveilBio"));
    mSize($("quizzEveilBio"));
}

/******  EDBM redesign new functions   *******/
/*******  bind onload view managers  *********/
Event.observe(window, 'load', filterResults); //covers all new (plus other than filtering) load events
function filterResults() {
    initViewChangers();
    initPseudoSelects();
    initCollapsibles();
    initStyledFileInputs();
    getTextareasCharlimitsAndCounters();
    restrictToNumericInput();
    chceboxesRadioBehave();
    handleTruncatedTitles();
}
/****  end of bind onload view managers  ****/
/***************  initiators  ***************/
function initCollapsibles() {
    var colapsibles = $$('.edbmCollapsibleWrapper');
    var colapsheads = $$('.edbmCollapsibleWrapper .edbmCollapsibleHeader a');
    var colapscontents = $$('.edbmCollapsibleWrapper .edbmCollapsibleContent');
    if (colapsibles.length > 0 && colapsheads.length == colapscontents.length) {
        colapsheads.each(function (toggler, index) {
            $(toggler).removeAttribute('href');
            var toggleHead = $(toggler).up();
            toggleHead = (toggleHead.tagName.toLowerCase() == 'h2') ? $(toggleHead).up() : $(toggleHead);
            var toggleContent = toggleHead.next();
            var contentUtil = toggleContent.childElements()[0];
            var otags = $(contentUtil).childElements().length;
            var otext = ($(contentUtil).innerHTML.replace(/^\s\s*/, '').replace(/\s\s*$/, ''));
            var hasTags = (otags > 0) ? true : false;
            var hasText = false;
            if (!hasTags) hasText = (otext.length > 0) ? true : false;
            var hasContent = (hasTags || hasText) ? true : false;
            if (!toggleHead.hasClassName('opened')) {

                $(toggleContent).setStyle({ display: 'none' });
                if ($(toggler).up().tagName.toLowerCase() != 'h2') {
                    $(toggler).innerHTML = 'Ouvrir';
                }
            } else {
                if ($(toggler).up().tagName.toLowerCase() != 'h2') {
                    $(toggler).innerHTML = 'Fermer';
                }
            }
            if (hasContent) {
								$(toggler).observe('click', toggleEdbmCollapsibles);
								if ($(toggler).up().tagName.toLowerCase() != 'h2') {
									var andOnTitleAlso = (typeof Element.getElementsBySelector == 'function') ? $(toggleHead).getElementsBySelector('h2') : $(em).select('h2');
									$(andOnTitleAlso[0]).observe('click', toggleEdbmCollapsibles);
									$(andOnTitleAlso[0]).setStyle({'cursor':'pointer'});
								}
						}
							
        });
    }
}
function initViewChangers() {
    var viewChangers = $$('a.viewList', 'a.viewThumbs');
    var panWrappers = $$('div.vignettes', 'div.list');
    if (viewChangers.length == panWrappers.length * 2) {
        viewChangers.each(function (elmnt) {
            Event.observe($(elmnt), 'click', changeView);
        });
    }
}
function initPseudoSelects() {
    var pseudoLists = $$('.pseudoSelect .pseudoSelectOptions');
    if (pseudoLists.length > 0) {
        Event.observe(document.body, 'click', managePseudoLists.bindAsEventListener());
    }
}
function initStyledFileInputs() {
    $$('input.file1').each(function (f) {
        $(f).observe('change', parseValue);
    });
}
function getTextareasCharlimitsAndCounters() {
    var classpreffix = new RegExp('charcountme');
    var terias = $$('textarea');
    var targetsArea = new Array();
    terias.each(function (elm) {
        var checkforpreffix = classpreffix.test($(elm).className);
        if (checkforpreffix) targetsArea.push($(elm));
    });
    if (targetsArea.length > 0) {
        targetsArea.each(function (Y) {
            if ($(Y).id.length > 0) {
                var onesId = $(Y).id;
                var labelsFor = $$('label[for=' + onesId + ']');
                if (labelsFor.length == 1) {
                    var myLabelSiblings = labelsFor[0].siblings();
                    var haveCounter = false;
                    myLabelSiblings.each(function (Q) {
                        if ($(Q).hasClassName('charcount1')) {
                            var siblingSpanChildren = $(Q).down(0);
                            if (siblingSpanChildren.hasClassName('counterX')) {
                                $(Y).observe('keyup', limitCharsAndCount);
                                $(Y).observe('blur', limitCharsAndCount);
                            } else {
                                $(Y).observe('keyup', limitChars);
                                $(Y).observe('blur', limitChars);
                            }
                        } else {
                            $(Y).observe('keyup', limitChars);
                            $(Y).observe('blur', limitChars);
                        }
                    });
                } else {
                    $(Y).observe('keyup', limitChars);
                    $(Y).observe('blur', numericCheck);
                }
            }
        });
    }
}
function restrictToNumericInput() {
    $$('.numericonly').each(function (K) {
        $(K).observe('keypress', numericKeyOnly);
        $(K).observe('blur', numericOnlyCheck);
    });
}
function chceboxesRadioBehave() {
    $$('.chk2rad input.pseudoradio').each(function (chkbx) {
        $(chkbx).observe('click', checkboxes2radiofunction);
    });
}
function handleTruncatedTitles() {
    $$('div.vignettes div.showResultsRecettes div.viewRecette div.recetteName a').each(function (hpl) {
        limitBlockedStringLengthToHeightOfContainerBlock($(hpl));
    });
    $$('div.list div.showResultsRecettes div.viewRecette div.recetteName a').each(function (hpl) {
        restoreStringFromTagTitle($(hpl));
    });
}
/************ end of initiators  ************/
/*******  vitalize fake drop lists  *********/
var currentOpened = false;
function managePseudoLists(elm) {
    $$('.pseudoSelectOptions').each(function (n) {
        $(n).setStyle({ display: 'none', piosition: "", left: "", top: "", zIndex: "" });
    });
    var eb = Event.element(elm);
    var em = (eb.hasClassName('currentSelection')) ? eb.up() : (eb.hasClassName('pseudoSelect') ? eb : false);
    if (!em) {
        return;
    }
    currentOpened = $(em);
    var plistc = (typeof Element.getElementsBySelector == 'function') ? $(em).getElementsBySelector('.pseudoSelectOptions') : $(em).select('.pseudoSelectOptions');
    var plist = plistc[0];
    plist.setStyle({ display: 'block', position: "absolute", left: "-1px", top: "-1px", zIndex: '300' });
    var opts = (typeof Element.getElementsBySelector == 'function') ? $(em).getElementsBySelector('.pseudoSelectOption') : $(em).select('.pseudoSelectOption');
    var targets = (typeof Element.getElementsBySelector == 'function') ? $(em).getElementsBySelector('.pseudoSelectOption, .pseudoSelectOptions') : $(em).select('.pseudoSelectOption', '.pseudoSelectOptions');
    var soptc = (typeof Element.getElementsBySelector == 'function') ? $(em).getElementsBySelector('.currentSelection') : $(em).select('.currentSelection');
    var sopt = soptc[0];
    opts.each(function (b) {
        $(b).observe('click', function (e) {
            var op = Event.element(e);
            sopt.innerHTML = op.innerHTML;
            opts.each(function (y) {
                if ($(y).hasClassName("selected")) $(y).removeClassName("selected");
            });
            op.addClassName("selected");
            plist.setStyle({ display: 'none', piosition: "", left: "", top: "", zIndex: "" });
        });
    });
}
/***  end of fake drop lists vitalization  ***/
/**********  toggle results view  ************/
function changeView(el) {
    var em = Event.element(el);
    var plistc = (typeof Element.getElementsBySelector == 'function') ? $(em).getElementsBySelector('.pseudoSelectOptions') : $(em).select('.pseudoSelectOptions');
    var viewChangers = (typeof Element.getElementsBySelector == 'function') ? $(em).up().getElementsBySelector('a.viewList', 'a.viewThumbs') : $(em).up().select('a.viewList', 'a.viewThumbs');
    var changeToList = (typeof Element.getElementsBySelector == 'function') ? $(em).up().getElementsBySelector('a.viewList') : $(em).up().select('a.viewList');
    var changeToThumb = (typeof Element.getElementsBySelector == 'function') ? $(em).up().getElementsBySelector('a.viewThumbs') : $(em).up().select('a.viewThumbs');
    var target = $(em).up(3).next(0).hasClassName('showResultsRecettesWrapper') ? $(em).up(3).next(0).down(0) : ($(em).up(3).next(1).hasClassName('showResultsRecettesWrapper') ? $(em).up(3).next(1).down(0) : false);
    if (target != false) {
        if ($(em).hasClassName('viewList')) {
            $(target).className = 'list';
            if ($(changeToThumb[0]).hasClassName('active')) $(changeToThumb[0]).removeClassName('active');
            if (!$(em).hasClassName('active')) $(em).addClassName('active');
        }
        if ($(em).hasClassName('viewThumbs')) {
            $(target).className = 'vignettes';
            if (!$(em).hasClassName('active')) $(em).addClassName('active');
            if ($(changeToList[0]).hasClassName('active')) $(changeToList[0]).removeClassName('active');
        }
    }
    handleTruncatedTitles();
    return false;
}
/*******  end of toggle results view  ********/
/******** toggle collapsible content *********/
function toggleEdbmCollapsibles(el) {
		var cl = new RegExp('Fermer');
		var op = new RegExp('Ouvrir');
    var em = Event.element(el);
		var linktag;
		if (em.tagName.toLowerCase() == 'span') {
			if ($(em).up().tagName.toLowerCase() == 'a') linktag = $(em).up();
		} else linktag = $(em);
    var header = $(linktag).up();
    header = (header.tagName.toLowerCase() == 'h2') ? $(header).up() : $(header);
    var collapsible = $(header).next();
    if (header.hasClassName('opened')) {
        if (!linktag.hasClassName('animating')) {
            Effect.SlideUp(collapsible, {
                beforeStart: function () { linktag.toggleClassName('animating'); },
                afterFinish: function () {
                    header.toggleClassName('opened');
                    linktag.toggleClassName('animating');
                    var eparent = $(em).up();
                    if (eparent.tagName.toLowerCase() != 'h2' && !$(eparent).hasClassName('edbmCollapsibleHeader')) {
                         if ( linktag.test(e.innerHTML) ) linktag.innerHTML = 'Ouvrir';
                    } else {
											var ifOnHeader = $(header).descendants();
											$(ifOnHeader).each(function(e){
												if ( e.tagName.toLowerCase() == 'a' && cl.test(e.innerHTML) ) $(e).innerHTML = 'Ouvrir';
											});
											
                    }
                }
            });
        }
    } else {
        if (!linktag.hasClassName('animating')) {
            Effect.SlideDown(collapsible, {
                beforeStart: function () { linktag.toggleClassName('animating'); },
                afterFinish: function () {
                    header.toggleClassName('opened');
                    linktag.toggleClassName('animating');
                    var eparent = $(linktag).up();
                    if (eparent.tagName.toLowerCase() != 'h2' && !$(eparent).hasClassName('edbmCollapsibleHeader')) {
                        linktag.innerHTML = 'Fermer';
                    }
										 else {
											var ifOnHeader = $(header).descendants();
											$(ifOnHeader).each(function(e){
												if ( e.tagName.toLowerCase()  == 'a' && op.test(e.innerHTML) ) $(e).innerHTML = 'Fermer';
											});
										}
                }
            });
        }
    }
}
/*
function toggleEdbmCollapsibles(el) {
    var em = Event.element(el);
    var header = $(em).up();
    header = (header.tagName.toLowerCase() == 'h2') ? $(header).up() : $(header);
    var collapsible = $(header).next();
    if (header.hasClassName('opened')) {
        if (!em.hasClassName('animating')) {
            Effect.SlideUp(collapsible, {
                beforeStart: function () { em.toggleClassName('animating'); },
                afterFinish: function () {
                    header.toggleClassName('opened');
                    em.toggleClassName('animating');
                    var eparent = $(em).up();
                    if (eparent.tagName.toLowerCase() != 'h2' && !$(eparent).hasClassName('edbmCollapsibleHeader')) {
                        em.innerHTML = 'Ouvrir';
                    } else {
											var ifOnHeader = $(header).descendants();
											$(ifOnHeader).each(function(e){
												if ( e.tagName.toLowerCase() == 'a' ) $(e).innerHTML = 'Ouvrir';
											});
											
                    }
                }
            });
        }
    } else {
        if (!em.hasClassName('animating')) {
            Effect.SlideDown(collapsible, {
                beforeStart: function () { em.toggleClassName('animating'); },
                afterFinish: function () {
                    header.toggleClassName('opened');
                    em.toggleClassName('animating');
                    var eparent = $(em).up();
                    if (eparent.tagName.toLowerCase() != 'h2' && !$(eparent).hasClassName('edbmCollapsibleHeader')) {
                        em.innerHTML = 'Fermer';
                    }
										 else {
											var ifOnHeader = $(header).descendants();
											$(ifOnHeader).each(function(e){
												if ( e.tagName.toLowerCase()  == 'a' ) $(e).innerHTML = 'Fermer';
											});
										}
                }
            });
        }
    }
}
*/
/***** end of toggle collapsible content *****/
/******* stilized file upload handler ********/
function parseValue(o) {
    var obj = Event.element(o);
    var parent = $(obj).up().className;
    var target = $$('.' + parent + ' input.fakeUploadUrl')[0];
    target.value = obj.value;
}
/**** end of stilized file upload handler ****/
function limitChars(e) {
    var elm = Event.element(e);
    var classpreffix = new RegExp('charcountme');
    var digits = new RegExp(/\D/);
    var limit = elm.className.substr(11);
    var propperTag = (elm.tagName.toLowerCase() == 'textarea') ? true : ((elm.tagName.toLowerCase() == 'input' && elm.readAttribute('type').toLowerCase() == 'text') ? true : false);
    if (classpreffix.test($(elm).className) && !digits.test(limit) && propperTag) {
        var typelen = elm.value.length;
        if (typelen <= limit) {
            var left = limit - typelen;
        } else {
            elm.value = elm.value.substr(0, limit);
        }
    }
}
function limitCharsAndCount(e) {
    var elm = Event.element(e);
    var classpreffix = new RegExp('charcountme');
    var digits = new RegExp(/\D/);
    var limit = elm.className.substr(11);
    var propperTag = (elm.tagName.toLowerCase() == 'textarea') ? true : ((elm.tagName.toLowerCase() == 'input' && elm.readAttribute('type').toLowerCase() == 'text') ? true : false);
    if (classpreffix.test($(elm).className) && !digits.test(limit) && propperTag) {
        limit = parseInt(limit);
        var forid = elm.id;
        var labelSiblings = $$('label[for=' + forid + ']')[0].siblings();
        var countholder = false;
        labelSiblings.each(function (Q) {
            if ($(Q).hasClassName('charcount1')) {
                var siblingSpanChildren = $(Q).down(0);
                if (siblingSpanChildren.hasClassName('counterX')) countholder = $(siblingSpanChildren);
            }
        });
        var typelen = elm.value.length;
        if (typelen <= limit) {
            var left = limit - typelen;
            if (countholder != false) countholder.innerHTML = left;
        } else {
            elm.value = elm.value.substr(0, limit);
            if (countholder != false) countholder.innerHTML = '0';
        }
    }
}
function numericKeyOnly(e) {
    var elm = Event.element(e);
    if (elm.tagName.toLowerCase() == 'input' && $(elm).hasClassName('numericonly') && $(elm).readAttribute('type').toLowerCase() == 'text') {
        var theEvent = $(e);
        var noinputs = new Array(8, 9, 13, 16, 17, 18, 19, 20, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 144, 145, 91, 92, 93, 144, 145);
        var isallowed = false;
        var key = theEvent.keyCode || theEvent.which;
        for (var i = 0; i < noinputs.length; i++) {
            if (key == noinputs[i]) {
                isallowed = true;
                break;
            }
        }
        if (!isallowed) {
            key = String.fromCharCode(key);
            var regex = /[0-9]/;
            if (!regex.test(key)) {
                theEvent.returnValue = false;
                //if (theEvent.preventDefault(theEvent)) alert('IE');
                if (typeof theEvent.preventDefault == 'undefined') Event.stop(theEvent);
                else theEvent.preventDefault();
            }
        }
    }
}
function numericOnlyCheck(e) {
    var elm = Event.element(e);
    if (elm.tagName.toLowerCase() == 'input' && $(elm).hasClassName('numericonly') && $(elm).readAttribute('type').toLowerCase() == 'text') {
        if (elm.value.length > 0) {
            elm.value = elm.value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
            if (elm.value.length > 0) {
                var noD = new RegExp(/\D/g);
                if (noD.test(elm.value)) elm.value = "";
            }
        }
    }
}
if (typeof displayChildren == 'undefined') {
    var displayChildren = function () {
        var IndexValue = document.getElementById('g_numberOfChildren').selectedIndex;
        var nbChildren = document.getElementById('g_numberOfChildren').options[IndexValue].value;
        if (nbChildren > 0) {
            document.getElementById('dne1').style.removeProperty('display');
            document.getElementById('dne1').style.className = 'item';
        } else {
            document.getElementById('dne1').style.display = "none";
        }
        if (nbChildren > 1) {
            document.getElementById('dne2').style.removeProperty('display');
            document.getElementById('dne2').style.className = 'item';
        } else {
            document.getElementById('dne2').style.display = "none";
        }
        if (nbChildren > 2) {
            document.getElementById('dne3').style.removeProperty('display');
            document.getElementById('dne3').style.className = 'item';
        } else {
            document.getElementById('dne3').style.display = "none";
        }
        if (nbChildren > 3) {
            document.getElementById('dne4').style.removeProperty('display');
            document.getElementById('dne4').style.className = 'item';
        } else {
            document.getElementById('dne4').style.display = "none";
        }
        if (nbChildren > 4) {
            document.getElementById('dne5').style.removeProperty('display');
            document.getElementById('dne5').style.className = 'item';
        } else {
            document.getElementById('dne5').style.display = "none";
        }
    }
}
function checkboxes2radiofunction(ev) {
    var el = Event.element(ev);
    var parents = $(el).ancestors();
    var wrapper;
    for (var x = 0; x < parents.length; x++) {
        if ($(parents[x]).hasClassName('chk2rad')) {
            wraper = $(parents[x]);
            break;
        }
    }
    var dummyRadios = (typeof Element.getElementsBySelector == 'function') ? $(wraper).getElementsBySelector('input.pseudoradio') : $(wraper).select('input.pseudoradio');
    if ($(el).checked) {
        $(dummyRadios).each(function (inp) {
            $(inp).checked = false;
        });
        $(el).checked = true;
    } else {
        $(el).checked = true;
    }
}
/**** cut-off/restore words from/to long titles *****/
function limitBlockedStringLengthToHeightOfContainerBlock(passed) {
    var elm = $(passed);
    var container = elm.up();
    var current = $(elm).offsetHeight;
    var limit = $(container).offsetHeight;
    var text0 = elm.innerHTML.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    var text = text0.replace(/\s+/g, ' ');
    if (current > limit) {
        elm.title = text;
        var newtext, words = text.split(' ');
        var initLen = words.length;
        for (var x = initLen - 1; x > -1; x--) {
            words.pop();
            newtext = words.join(' ') + '...';
            elm.innerHTML = newtext;
            if (limit >= elm.offsetHeight) break;
        }
    }
}
function restoreStringFromTagTitle(passed) {
    var elm = $(passed);
    var container = elm.up();
    if (elm.title != 'undefined') {
        var text0 = elm.title.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
        if (text0.length > 0) {
            var text = text0.replace(/\s+/g, ' ');
            var viewed = elm.innerHTML;
            if (viewed.substr(viewed.length - 3) == '...') {
                var nodots = viewed.substr(0, (viewed.length - 3));
                var visible = text.substr(0, nodots.length);
                if (nodots == visible) {
                    elm.innerHTML = text;
                    elm.title = text;
                    limitBlockedStringLengthToHeightOfContainerBlock(elm);
                }
            }
        }
    }
}
/* end of cut-off/restore words from/to long titles */
/* select print style */
function selectPrintStyle() {
	mShow(_("printWWOimages"));
	mSize(_("printWWOimages"));
}

function simulateChecks(ev) {
	var radios = $$('.radioWrapper a');
	for (var i = 0; i < radios.length; i++) {
		if ( $(radios[i]).hasClassName('thisChecked') ) $(radios[i]).removeClassName('thisChecked');
	}
	$(ev).addClassName('thisChecked');
	if ($(ev).hasClassName('true')) imageryPrinter(true);
	else imageryPrinter(false);
}
function imageryPrinter(o) {
	var sheetname = new RegExp('printnoimages');
	var present = false;
	for (var i = 0; i < document.styleSheets.length; i++) {
		if (sheetname.test(document.styleSheets[i].href)) present = true;
	}
	if (o == true && !present) {
			var noimg = document.createElement('link');
			noimg.media = 'print';
			noimg.type = 'text/css';
			noimg.rel = 'stylesheet';
			noimg.href = '/Site/Includes/Css/printnoimages.css';
			document.getElementsByTagName("head")[0].appendChild(noimg);
	} else {
		var sh = $$('head link');
		for (var i = 0; i < sh.length; i++) {
			if (sheetname.test(sh[i].href))  $(sh[i]).remove();
		}
	}
	printDesided();
}
function printDesided() {
	mHide();
	risePreview();
}
function printFromPreview() {
	mHide();
	window.print();
}
/* end of select print style */
/******* create print preview ********/
function risePreview() {
	var datas = '"","printPreview","height=750,width=650,toolbar=yes,directories=no,status=no,linemenubar=yes,scrollbars=yes,resizable=no ,modal=yes"';
	var thePage = '<div class="container">';
	thePage += '<div class="header"><div class="logo">';
	thePage += $$('div.header div.logo')[0].innerHTML;
	thePage += '</div></div>';
	thePage += '<div class="content"><div class="inner"><div class="center"><div class="hrecipe"><div class="recetteBody">';
	thePage += '<h1 class="';
	thePage += $$('div.content div.inner div.center div.recetteBody h1')[0].className;//div.hrecipe div.recetteBody h2
	thePage += '">';
	thePage += $$('div.content div.inner div.center div.recetteBody h1')[0].innerHTML;//div.hrecipe div.recetteBody h2
	thePage += '</h2>';
	thePage += '<div class="leftColRecette">';
	thePage += '<div class="recipeImg">';
	thePage += $$('div.content div.inner div.center div.recetteBody div.recipeImg')[0].innerHTML;//div.hrecipe div.recetteBody div.recipeImg
	thePage += '</div>';
	if ($$('div.content div.inner div.center div.recetteBody div.leftColRecette div.produitUtilise h4').length > 0) {
	thePage += '<div class="produitUtilise">';
	thePage += '<h4 class="';
	thePage += $$('div.content div.inner div.center div.recetteBody div.leftColRecette div.produitUtilise h4')[0].className;//div.hrecipe div.recetteBody div.leftColRecette div.produitUtilise h4
	thePage += '">';
	thePage += $$('div.content div.inner div.center div.recetteBody div.leftColRecette div.produitUtilise h4')[0].innerHTML;//div.hrecipe div.recetteBody div.leftColRecette div.produitUtilise h4
	thePage += '</h4>';
	thePage += '<div class="produitUtiliseImg">';
	thePage += $$('div.content div.inner div.center div.recetteBody div.leftColRecette div.produitUtilise div.produitUtiliseImg')[0].innerHTML;//div.hrecipe div.recetteBody div.leftColRecette div.produitUtilise div.produitUtiliseImg
	thePage += '</div>';
	thePage += '</div>';
	}
	if ($$('div.content div.inner div.center div.recetteBody div.leftColRecette div.lastuceRecette').length > 0 ) {
	thePage += '<div class="lastuceRecette">';
	thePage += $$('div.content div.inner div.center div.recetteBody div.leftColRecette div.lastuceRecette')[0].innerHTML;
	thePage += '</div>';
	}
	thePage += '</div>';
	thePage += '<div class="rightColRecette">';
	if ($$('div.content div.inner div.center div.rightColRecette div.laRecetteInfo').length > 0) {
	thePage += '<div class="laRecetteInfo">';
	thePage += $$('div.content div.inner div.center div.recetteBody div.rightColRecette div.laRecetteInfo')[0].innerHTML;//div.hrecipe div.recetteBody div.rightColRecette div.laRecetteInfo
	thePage += '</div>';
	}
	thePage += '<div class="ingredientsRecette">';
	if ($$('div.content div.inner div.center div.rightColRecette div.ingredientsRecette').length > 0) thePage += $$('div.content div.inner div.center div.recetteBody div.rightColRecette div.ingredientsRecette')[0].innerHTML;//div.hrecipe div.recetteBody div.rightColRecette div.ingredientsRecette
	thePage += '</div>';
	thePage += '<div class="ingredientsRecette">';
	if ($$('div.content div.inner div.center div.rightColRecette div.ingredientsRecette').length > 1) thePage += $$('div.content div.inner div.center div.recetteBody div.rightColRecette div.ingredientsRecette')[1].innerHTML;//div.hrecipe div.recetteBody div.rightColRecette div.ingredientsRecette
	thePage += '</div>';
	thePage += '<div class="bonAppetit">';
	if ($$('div.content div.inner div.center div.recetteBody div.rightColRecette div.bonAppetit').length > 0) thePage += $$('div.content div.inner div.center div.recetteBody div.rightColRecette div.bonAppetit')[0].innerHTML;//div.hrecipe div.recetteBody div.rightColRecette div.bonAppetit
	thePage += '</div>';
	thePage += '<div class="bonAppetit"> </div>';
	thePage += '</div>';
	thePage += '</div></div></div></div></div>';
	thePage += '</div>';
	var mediaType = new RegExp('print');
	var internals = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
	internals += '<html xmlns="http://www.w3.org/1999/xhtml lang="fr" xml:lang="fr">';
	internals += '<head>';
	internals += '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />';
	internals += '<meta http-equiv="imagetoolbar" content="no" />';
	
	var ln = $$('head link');
	for (var i = 0; i < ln.length; i++) {
		if ( mediaType.test(ln[i].media) && !ln[i].disabled) {
			internals += '<link href="';
			internals += ln[i].href;
		 internals += '" media="all" rel="stylesheet" type="text/css" />';
		}
	}
	internals += '</head>';
	internals += '<body>';
	internals += thePage;
	internals += '</body>';
	internals += '</html>';
	var pPreview = document.createElement('div');
	pPreview.id = 'pPreview';
	pPreview.className = 'modal';
	document.getElementsByTagName("body")[0].appendChild(pPreview);
	var holder = document.createElement('div');
	holder.id = 'pPreviewHolder';
	var pPcontainer = document.getElementById('pPreview');
	pPcontainer.appendChild(holder);
	var pframe = document.createElement('iframe');
	pframe.id = 'pPreviewFrame';
	pframe.frameBorder =  '0';
	var pHolder =  document.getElementById('pPreviewHolder');
	pHolder.innerHTML = '<div class="closerWrapper"><a href="javascript://" id="printModalButton" onclick="printFromPreview();">Imprimer</a><div class="closer">Fermer</div></div>';
	pHolder.appendChild(pframe);
	var f2write = document.getElementById('pPreviewFrame');
	//
	f2write = (f2write.contentWindow) ? f2write.contentWindow : (f2write.contentDocument.document) ? f2write.contentDocument.document : f2write.contentDocument;
	f2write.document.open();
	f2write.document.write(internals);
	mShow(_("pPreview"));
	mSize(_("pPreview"));
}
/**** end of create print preview ****/
/***  end of EDBM redesign new functions   ***/
