﻿///<reference path="global.js" />
loader = {
    modes: { all: 0, page: 1, array: 2 },
    images: [],
    Init: function () {
        loader.image = "res/img/preloader.gif";
        loader.mode = loader.modes.all;
        if (!loader.images)
            loader.images = [];
        loader.tocheck = $G.Get.ByTag(document.body, "img", true);
        var holder = loader.CreateHolder();
        for (var i = 0; i < loader.images.length; i++) {
            loader.tocheck.push($G.Append(holder, $G.Tag("img", { src: loader.images[i] })));
        }
        loader.Start();
    },
    Start: function () {
        $FX.Time(10).Interval(10).Page.FadeIn("#303030", 100, function () {
            var a = $G.Append(document.body, $G.Tag("img", { src: loader.image }));
            a.style.position = "absolute";
            a.style.zIndex = "1000001";
            loader.preloader = a;
            $G.ShowInPageCenter(a);
            loader.time = (new Date()).getTime();
            loader.LoadCheck();
        }, 1000000);
    },
    Finish: function () {
        loader.preloader.style.display = "none";
        $G.GET("#main").style.visibility = "";
        setTimeout(function () {
            $FX.Time(500).Interval(10).Page.FadeOut("#303030", function () {
            });
        }, 300);
    },
    time: 0,
    LoadCheck: function () {
        if ((new Date()).getTime() < 4000) {
            for (var i = 0; i < loader.tocheck.length; i++) {
                if (!loader.tocheck[i].complete) {
                    setTimeout(loader.LoadCheck, 100);
                    return;
                }
            }
        }
        loader.Finish();
    },
    CreateHolder: function () {
        var holder = $G.Append(document.body, $G.Tag("div"));
        holder.style.width = "1px";
        holder.style.height = "1px";
        holder.style.overflow = "hidden";
        holder.style.visibility = "hidden";
        return holder;
    }
}
addDOMLoadEvent(loader.Init);
