/* @@ >>>>> это главный блок, который должен быть первым */
//String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); }
var Lib = {
    //* @@ >>>>> для выполнения пост-загрузочных действий */
    OnloadFuncs: new Array(),
    Onload: function(){
        for (i = 0; i < Lib.OnloadFuncs.length; i++) {
            eval(Lib.OnloadFuncs[i]);
        }
    },
    //* @@ >>>>> для временных данных, которые нельзя внести после загрузки */
    Var: {
        
    },
    //* @@ >>>>> для разового выполнеиня функции до загрузки страницы */
    ExecuteFuncs: [],
    Execute: function (callText) {
        try {
            if (!Lib.ExecuteFuncs[callText]) { Lib.ExecuteFuncs[callText]=0; }
            Lib.ExecuteFuncs[callText]++;
            eval(callText);
        }
        catch (e) {
            if (Lib.ExecuteFuncs[callText] < 30) {
                setTimeout(callText, 100);
            }
        }
    },
    //* @@ Для проверки изменения якоря страницы >>>>> */
    Hash: {
        Last: '#',
        Functions: new Array(),
        Check: function(){
            var newHash = window.location.hash;
            if (newHash == '') {
                newHash = '#';
            }
            if (newHash != Lib.Hash.Last) {
                for (var i=0;i<Lib.Hash.Functions.length;i++) {
                    try {
                        eval(Lib.Hash.Functions[i]);
                    }
                    catch(e){}
                }
            }
            Lib.Hash.Last = newHash;
            setTimeout('Lib.Hash.Check()', 250);
        }
    }
};
//Lib.Hash.Check();
/* @@ <<<<< это главный блок, который должен быть первым */
