function checkCSS(){
    if(!document.getElementsBySelector){

        // http://www.joehewitt.com/blog/files/getElementsBySelector.js
        document.getElementsBySelector = function(css)
        {
            var xpath = cssToXPath(css);

            var nodes = [];
            try {
                var result = this.evaluate(xpath, this, null, XPathResult.ANY_TYPE, null);

                for (var item = result.iterateNext(); item; item = result.iterateNext())
                    nodes.push(item);
            } catch(e){}

            return nodes;
        }

        function cssToXPath(rule)
        {
            var regElement = /^([#.]?)([a-z0-9\\*_-]*)((\|)([a-z0-9\\*_-]*))?/i;
            var regAttr1 = /^\[([^\]]*)\]/i;
            var regAttr2 = /^\[\s*([^~=\s]+)\s*(~?=)\s*"([^"]+)"\s*\]/i;
            var regPseudo = /^:([a-z_-])+/i;
            var regCombinator = /^(\s*[>+\s])?/i;
            var regComma = /^\s*,/i;

            var index = 1;
            var parts = ["//", "*"];
            var lastRule = null;
            
            while (rule.length && rule != lastRule)
            {
                lastRule = rule;

                // Trim leading whitespace
                rule = rule.replace(/^\s*|\s*$/g,"");
                if (!rule.length)
                    break;
                
                // Match the element identifier
                var m = regElement.exec(rule);
                if (m)
                {
                    if (!m[1])
                    {
                        // XXXjoe Namespace ignored for now
                        if (m[5])
                            parts[index] = m[5];
                        else
                            parts[index] = m[2];
                    }
                    else if (m[1] == '#')
                        parts.push("[@id='" + m[2] + "']"); 
                    else if (m[1] == '.')
                        parts.push("[contains(@class, '" + m[2] + "')]"); 
                    
                    rule = rule.substr(m[0].length);
                }
                
                // Match attribute selectors
                m = regAttr2.exec(rule);
                if (m)
                {
                    if (m[2] == "~=")
                        parts.push("[contains(@" + m[1] + ", '" + m[3] + "')]");
                    else
                        parts.push("[@" + m[1] + "='" + m[3] + "']");

                    rule = rule.substr(m[0].length);
                }
                else
                {
                    m = regAttr1.exec(rule);
                    if (m)
                    {
                        parts.push("[@" + m[1] + "]");
                        rule = rule.substr(m[0].length);
                    }
                }
                
                // Skip over pseudo-classes and pseudo-elements, which are of no use to us
                m = regPseudo.exec(rule);
                while (m)
                {
                    rule = rule.substr(m[0].length);
                    m = regPseudo.exec(rule);
                }
                
                // Match combinators
                m = regCombinator.exec(rule);
                if (m && m[0].length)
                {
                    if (m[0].indexOf(">") != -1)
                        parts.push("/");
                    else if (m[0].indexOf("+") != -1)
                        parts.push("/following-sibling::");
                    else
                        parts.push("//");

                    index = parts.length;
                    parts.push("*");
                    rule = rule.substr(m[0].length);
                }
                
                m = regComma.exec(rule);
                if (m)
                {
                    parts.push(" | ", "//", "*");
                    index = parts.length-1;
                    rule = rule.substr(m[0].length);
                    
                }
            }
            
            var xpath = parts.join("");
            return xpath;
        }
    }
    var sheets = document.styleSheets;
    var len = sheets.length;
    for(var x = 0; x < len; x++){
        console.log("Checking: %o", sheets[x]);
        var rules = sheets[x].cssRules;
        var l2 = rules.length;
        for(var y = 0; y < l2; y++){
            var rule = rules[y];
            var a = document.getElementsBySelector(rule.selectorText);
            if(!a.length){
                console.log("CSS selector not being used: %o", rule);
            }
        }
    }
}

