﻿/// <reference path="packageLoader.js"/>
/// <reference path="tools.js"/>

packageLoader.ready(function () {
    var preloadElement = $("<div />");
    var preloadLayer = layout.createNewLayer(
    {
        zindex: -100,
        targetEle: preloadElement,
        visible: false
    });
    $(packageLoader.packages).each(function () {
        $(this.gadgets).each(function (index, item) {
            if (item.preload && item.preload.replace(/^\s+|\s+$/g, '')) {
                gadgetProxy.activeGadget(item.id);
                var gadgetPreloadElement = $("<iframe id='main_preload_" + item.id + "' />");
                gadgetPreloadElement.css({
                    width: "0%",
                    height: "0%",
                    border: "0 none transparent",
                    frameborder: "0"
                });
                gadgetPreloadElement.appendTo(preloadElement);

                if (!!!tools.getUrlVars().nogadgetloader) {
                    gadgetPreloadElement.attr('src', "gadgetPreloader?gurl=" + encodeURIComponent(item.url) + "&id=" + encodeURIComponent(item.id));
                }
                else {
                    gadgetPreloadElement.attr('src', "gadgetContainer.htm");
                    gadgetPreloadElement.each(function () {
                        this.onload = function () {
                            //                        this.contentWindow.onerror = function (err) {
                            //                            if (err != "Uncaught Error: can't load XRegExp twice in the same frame") {
                            //                                alert("catch on preload\n" + err);
                            //                            }
                            //                        };
                            this.contentWindow.gadget = gadgetProxy.getGadgetProxy(item.id);
                            if (this.contentWindow.bindBody) {
                                this.contentWindow.bindBody("<script type='text/javascript'>" + item.preload + "</script>");
                            }
                            else {
                                function retry() {
                                    if (this.contentWindow.bindBody) {
                                        this.contentWindow.bindBody("<script type='text/javascript'>" + item.preload + "</script>");
                                    }
                                    else {
                                        setTimeout(retry, 300);
                                    }
                                }
                                setTimeout(retry, 300);
                            }
                        };
                    });
                }
            }
        });
    });
});
