function becNewWindow(mypage, myname, w, h, features) {
    var winl = (screen.width - w) / 2;
    var wint = (screen.height - h) / 2;
    if (winl < 0) winl = 0;
    if (wint < 0) wint = 0;
    var settings = 'height=' + h + ',';
    settings += 'width=' + w + ',';
    settings += 'top=' + wint + ',';
    settings += 'left=' + winl + ',';
    settings += features;
    window.open(mypage, myname, settings);
}

function becOpenAbout(url) {
    becNewWindow(url, 'About', '550', '420', '');
}

jQuery.fn.reverse = function(destruct) {
    return this[destruct ? 'setArray' : 'pushStack'](this.get().reverse());
};

function RevealSLDivs() {

    $(document).ready(function() {
        _RevealSLDivs();
    });
    $(window).load(function() {
        _RevealSLDivs();
    });

    function _RevealSLDivs() {
        var divs = $("div.SilverlightDiv");
        if (divs) {
            divs.each(function(i) {
                var div = $(this);
                if (!div.attr("slRevealed")) {
                    div.attr("slRevealed", "true");
                    var divObject = div.find(":nth-child(1)");
                    if (typeof (divObject[0].Content) != "undefined" && (typeof (divObject[0].Content) == "unknown" || divObject[0].Content)) {
                        divObject[0].ResizeContainer = function(scX, scY) { window.status = "Control cannot be resized at this time."; };
                        divObject[0].CanResize = function() { return false; };
                    }
                    div.css("visibility", "visible");
                }
            });
        }
    }
}

function ShowGetSilverlight() {

    $(document).ready(function() {
        var divs = $("div.SilverlightDiv");
        if (divs) {

            divs.each(function(i) {
                var div = $(this);
                div.css("text-align", "center");
                div.css("vertical-align", "middle");
                div.css("visibility", "visible");
            });
        }
    });
}

function PreInitSLDivs() {

    var _divsSL, _alignDivs;
    var modalOverlay, body;
    var bIsAppleWebKit = false;

    jQuery.each(jQuery.browser, function(i) {
        if ($.browser.safari) {
            bIsAppleWebKit = true;
            return false;
        }
    });

    function ResizeWindow() {

        for (var i = 0; i < _divsSL.length; i++) {
            var d = _divsSL[i];
            var a = _alignDivs[i].offset();
            if (d.attr("slSized") == "true" && typeof (modalOverlay) != "undefined") {
                if ($.browser.msie) {
                    modalOverlay.css({ height: document.body.clientHeight, width: document.body.clientWidth });
                    window.setTimeout(function() {
                        modalOverlay.css({ height: document.body.scrollHeight, width: document.body.scrollWidth });
                    }, 200);
                }
            } else {
                d.css("left", a.left);
            }
        }
    }

    function InitSLDivs() {

        function ResizeContainer(_div, scX, scY) {

            window.setTimeout(function() {

                if (_div.attr("slSized") == "false" || parseInt(_div.attr("slOrigWidth")) != parseInt(scX) || parseInt(_div.attr("slOrigHeight")) != parseInt(scY)) {
                    _div.css("width", scX);
                    _div.css("height", scY);
                    _div.css({ left: '50%', 'margin-left': parseInt(scX) * -0.5 });
                    _div.css({ top: '50%', 'margin-top': (parseInt(scY) * -0.5) + document.body.scrollTop });
                    if (_div.attr("slSized") == "false") {
                        _div.attr("slSized", "true");
                        _div.css("z-index", "7100");
                        objs.each(function(j) {
                            var ot = $(this).parent();
                            if (ot.attr("slSized") != "true")
                                ot.css("visibility", "hidden");
                        });
                        if ($.browser.msie) {
                            modalOverlay.css({ visibility: 'visible', display: 'none', height: document.body.scrollHeight, width: document.body.scrollWidth, position: 'absolute', left: 0, top: 0, 'z-index': 7099, opacity: 50 / 100 });

                        } else {
                            modalOverlay.css({ visibility: 'visible', display: 'none', height: '100%', width: '100%', position: 'fixed', left: 0, top: 0, 'z-index': 7099, opacity: 50 / 100 });
                        }
                        modalOverlay.fadeIn("fast");
                    }
                } else {
                    _div.css("width", _div.attr("slOrigWidth"));
                    _div.css("height", _div.attr("slOrigHeight"));
                    objs.each(function(j) {
                        var ot = $(this).parent();
                        if (ot.attr("slSized") != "true")
                            ot.css({ visibility: "visible" });
                    });
                    _div.attr("slSized", "false");
                    _div.css("margin-left", _div.attr("slOrigMarginLeft"));
                    _div.css("left", _div.attr("slOrigLeft"));
                    _div.css("margin-top", _div.attr("slOrigMarginTop"));
                    _div.css("top", _div.attr("slOrigTop"));
                    if (parseInt(_div.attr("slOrigZIndex")) == 0)
                        _div.css("z-index", "");
                    else
                        _div.css("z-index", _div.attr("slOrigZIndex"));
                    modalOverlay.fadeOut("fast", function() { modalOverlay.css({ visibility: 'hidden', width: 0, height: 0 }); });
                    ResizeWindow();
                }
            }, 20);

        }

        var divs = $("div.SilverlightDiv");

        if (divs) {

            if (typeof (_divsSL) == "undefined") {
                _divsSL = [];
                _alignDivs = [];
            }

            var objs = $("OBJECT");
            if (typeof (body) == "undefined") body = $('body');
            if (typeof (modalOverlay) == "undefined") {
                modalOverlay = $('<div id="modal_overlay" class="simplemodal-overlay"></div>');
                body.append(modalOverlay);
            }

            // reverse().
            divs.each(function(i) {
                var div = $(this);
                if (!div.attr("slApplied") && (!div.parent().attr("SelectedWebPart") || div.parent().attr("SelectedWebPart") != "true")) {

                    div.attr("slApplied", "true");

                    _divsSL.push(div);
                    _alignDivs.push(div.parent());

                    var divOffset = div.offset();
                    var divIndex = 'divSL' + ((i > 9) ? i : '0' + i);
                    div.attr("slOrigLeft", divOffset.left);
                    div.attr("slOrigTop", divOffset.top);
                    div.attr("slOrigWidth", div.width());
                    div.attr("slOrigHeight", div.height());
                    div.attr("slOrigZIndex", div.css("z-index"));
                    div.attr("slOrigMarginLeft", div.css("margin-left"));
                    div.attr("slOrigMarginTop", div.css("margin-top"));
                    div.attr("slAlignDiv", div.parent().attr("id"));
                    div.attr("slPlaceholder", divIndex);
                    div.attr("slSized", "false");

                    var divObject = div.find(":nth-child(1)");
                    var placeHolder = $('<div id="' + divIndex + '"><div id="' + divIndex + '_inner">&nbsp;</div></div>');
                    div.parent().append(placeHolder);

                    var divInner = $('#' + divIndex + '_inner');
                    divInner.css("width", divObject.width());
                    divInner.css("height", divObject.height());

                    body.append(div);

                    div.css("position", "absolute");
                    div.css("top", divOffset.top);
                    div.css("left", divOffset.left);
                    div.css("visibility", "visible");

                    divObject = div.find(":nth-child(1)");
                    if (typeof (divObject[0].Content) != "undefined" && (typeof (divObject[0].Content) == "unknown" || divObject[0].Content)) {
                        divObject[0].CanResize = function() { return true; };
                        divObject[0].ResizeContainer = function(scX, scY) { ResizeContainer(div, scX, scY); };
                        divObject[0].RestoreContainer = function() { div.attr("slSized", "true"); ResizeContainer(div, div.attr("slOrigWidth"), div.attr("slOrigHeight")); };
                    }
                }
            }
			);

            if (typeof (_divsSL) != "undefined" && _divsSL.length > 0) {
                $(window).resize(ResizeWindow);
            }
        }
    }

    $(window).load(function() {
        InitSLDivs();
        if (typeof (_divsSL) != "undefined" && _divsSL.length > 0) {
            window.setTimeout(ResizeWindow, 250);
        }
    });

    if (!bIsAppleWebKit) {
        $(document).ready(function() {
            InitSLDivs();
        });
    }
}
