﻿function showToggler(togglerNode, displayNode, displayText, hideText) {
    $(togglerNode).toggleClass('memo_chko_toggler_on');
    $(displayNode).toggle();
    if (hideText != '') {
        var regexpDisplay = new RegExp('(' + displayText + ')', 'g');
        var regexpHide = new RegExp('(' + hideText + ')', 'g');
        var togglerText = togglerNode.innerHTML;
        if (togglerText.match(regexpDisplay))
            togglerNode.innerHTML = togglerText.replace(regexpDisplay, hideText);
        else
            togglerNode.innerHTML = togglerText.replace(regexpHide, displayText);
    }
}

function showThickBox(url,urlBoutonFermer,urlLoader) {
    try {
        if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
            $("body", "html").css({ height: "100%", width: "100%" });
            $("html").css("overflow", "hidden");
            if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
                $("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
                $("#TB_overlay").click(tb_remove);
            }
        } else {//all others
            if (document.getElementById("TB_overlay") === null) {
                $("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
                $("#TB_overlay").click(tb_remove);
            }
        }

        if (tb_detectMacXFF()) {
            $("#TB_overlay").addClass("memo_modalpopup_background"); //use png overlay so hide flash
        } else {
            $("#TB_overlay").addClass("memo_modalpopup_background"); //use background and opacity
        }

        var baseURL;
        if (url.indexOf("?") !== -1) { //ff there is a query string involved
            baseURL = url.substr(0, url.indexOf("?"));
        } else {
            baseURL = url;
        }
        var queryString = url.replace(/^[^\?]+\??/, '');
        var params = tb_parseQuery(queryString);

        TB_WIDTH = (params['width'] * 1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
        TB_HEIGHT = (params['height'] * 1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
        ajaxContentW = TB_WIDTH - 30;
        ajaxContentH = TB_HEIGHT - 45;

        $("#TB_window").append("<div id='TB_title'><div id='TB_closeAjaxWindow'><span class='memo_chko_popup_fermer'><input id='TB_closeWindowButton' src='" + urlBoutonFermer + "' type='image'></span></div></div><div id='TB_ajaxContent' style='width:" + ajaxContentW + "px;height:" + ajaxContentH + "px'></div>");
        $("#TB_window").css({ marginLeft: '-' + parseInt((TB_WIDTH / 2), 10) + 'px', width: TB_WIDTH + 'px' });
        if (!(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
            $("#TB_window").css({ marginTop: '-' + parseInt((TB_HEIGHT / 2), 10) + 'px' });
        }

        $("#TB_ajaxContent").append("<img class='memo_chko_loading' src='" + urlLoader + "'/>");
        $(".memo_chko_loading").css("text-align", "center");
        $("#TB_ajaxContent").load(url, function () {
                $(".memo_chko_loading").hide();
            }
        );
        
        $("#TB_window").show();
        $("#TB_closeWindowButton").click(tb_remove);

    } catch (e) {
        //nothing here
    }

}

function tb_remove() {
    $("#TB_imageOff").unbind("click");
    $("#TB_closeWindowButton").unbind("click");
    $("#TB_window").fadeOut("fast", function () { $('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove(); });
    $("#TB_load").remove();
    if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
        $("body", "html").css({ height: "auto", width: "auto" });
        $("html").css("overflow", "");
    }
    document.onkeydown = "";
    document.onkeyup = "";
    return false;
}

function tb_detectMacXFF() {
    var userAgent = navigator.userAgent.toLowerCase();
    if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox') != -1) {
        return true;
    }
}

function tb_parseQuery(query) {
    var Params = {};
    if (!query) { return Params; } // return empty object
    var Pairs = query.split(/[;&]/);
    for (var i = 0; i < Pairs.length; i++) {
        var KeyVal = Pairs[i].split('=');
        if (!KeyVal || KeyVal.length != 2) { continue; }
        var key = unescape(KeyVal[0]);
        var val = unescape(KeyVal[1]);
        val = val.replace(/\+/g, ' ');
        Params[key] = val;
    }
    return Params;
}

function FireDefaultButton(event, target) {
    if (event.keyCode == 13) {
        var src = event.srcElement || event.target;
        if (!src || (src.tagName.toLowerCase() != "textarea")) {
            $("#"+target).click();
            event.cancelBubble = true;
            if (event.stopPropagation) event.stopPropagation();
            return false;
        }
    }
    return true;
}

function Overlay(idElement, fixedpos, isOneInstance, isCloseOnClick, zIndex, isLoad) {
    var mask = {
        color: '#000',
        loadSpeed: 100,
        opacity: 0.80
    };
    if (isOneInstance == null) {
        isOneInstance =  true;
    }

    if (isCloseOnClick == null) {
        isCloseOnClick = true;
    }

    if (zIndex == null) {
        zIndex = 19999;
    }

    if (isLoad == null) {
        isLoad = false;
    }

    $('#' + idElement).overlay({
        oneInstance: isOneInstance,
        mask: mask,
        fixed: fixedpos,
        closeOnClick: isCloseOnClick,
        zIndex: zIndex,
        load: isLoad,
        onBeforeLoad: function (e) {

            var wrap = this.getOverlay().find('.contentWrap:first');

            var target = this.getTrigger().attr('href');
            if (target != null && target != '#' && target != 'undefined' && target != '') {
                if (target.indexOf('#') === 0) {
                    var content = $($(target).clone(true).css('display', 'block').html());
                    content.find('.close:first').remove();
                    wrap.append(content);
                }
                else {
                    wrap.load(target);
                }
            }
        },
        onBeforeClose: function () {
            var target = this.getTrigger().attr('href');
            if (target != null && target != '#') {
                if (target.indexOf('#') === 0) {
                    var wrap = null;
                    this.getOverlay().find('.contentWrap:first').empty();
                }
            }
        }

    });
}

