css = {
    about: 'CSS LIBRARY v1 by tc.prognoz.ru',
    getRule:function (ruleName, deleteFlag)
    {
        stat.css.getRule++;
        if (document.styleSheets)
        {
            for (var i=0; i<document.styleSheets.length; i++)
            {
                var styleSheet=document.styleSheets[i];
                var j=0;
                var cssRule=false;
                do
                {
                    if (styleSheet.cssRules)
                        cssRule = styleSheet.cssRules[j];
                    else
                        cssRule = styleSheet.rules[j];
                    if (cssRule)
                    {
                        if (cssRule.selectorText.toLowerCase()==ruleName)
                        {
                            if (deleteFlag)
                            {
                                if (styleSheet.cssRules)
                                    styleSheet.deleteRule(j);
                                else
                                    styleSheet.removeRule(j);
                                return true;
                            }
                            else 
                                return cssRule;
                        }
                    }
                    j++;
                } while (cssRule)
            }
        }
        return false;
    },
    
    delRule: function (ruleName)
    {
        stat.css.delRule++;
        return this.getRule(ruleName,true);
    },
    /* доделать добавление стилей с указанным cssText */
    addRule: function (ruleName, cssText)
    {
        stat.css.addRule++;
        if (document.styleSheets)
        {
            if (!this.getRule(ruleName))
            {
                if (document.styleSheets[0].addRule)
                    document.styleSheets[0].addRule(ruleName, cssText,0);
                else
                    document.styleSheets[0].insertRule(ruleName+' { '+(cssText||'')+' }', 0);
            }
        }
        return this.getRule(ruleName);
    },
    
    addSS: function (name)
    {
        stat.css.addSS++;
        var cssNode = document.createElement('style');
        cssNode.type = 'text/css';
        cssNode.rel = 'stylesheet';
        cssNode.media = 'screen';
        cssNode.title = name || 'NO_NAME';
        document.getElementsByTagName("head")[0].appendChild(cssNode);
    },
    
    loadSS: function (name, url)
    {
        stat.css.loadSS++;
        if (!url) return;
        var cssNode = document.createElement('link');
        cssNode.type = 'text/css';
        cssNode.rel = 'stylesheet';
        cssNode.href = url;
        cssNode.media = 'screen';
        cssNode.title = name || 'NO_NAME';
        document.getElementsByTagName("head")[0].appendChild(cssNode);
    }
}

stat.css = {getRule:0, delRule:0, addRule:0, addSS:0,loadSS:0}
