/**
 * @author William Gacquer - AMILTO 2009/10/23
 */
/**
 * Pour récupérer une stylesheet en fonction de son titre
 */
function getStyleSheet(t){
    for (var i = 0; i < document.styleSheets.length; i++) {
        var sheet = document.styleSheets[i];
        if (sheet.title == t) {
            return sheet;
        }
    }
}

/**
 * Pour récupérer une règle CSS en fonction de son tag
 */
function getCSSRule(ruleName, deleteFlag){ // Return requested style obejct
    ruleName = ruleName.toLowerCase(); // Convert test string to lower case.
    if (document.styleSheets) { // If browser can play with stylesheets
        for (var i = 0; i < document.styleSheets.length; i++) { // For each stylesheet
            var styleSheet = document.styleSheets[i]; // Get the current Stylesheet
            var ii = 0; // Initialize subCounter.
            var cssRule = false; // Initialize cssRule. 
            do { // For each rule in stylesheet
                if (styleSheet.cssRules) { // Browser uses cssRules?
                    cssRule = styleSheet.cssRules[ii]; // Yes --Mozilla Style
                }
                else { // Browser usses rules?
                    cssRule = styleSheet.rules[ii]; // Yes IE style. 
                } // End IE check.
                if (cssRule) { // If we found a rule...
                    if (cssRule.selectorText.toLowerCase() == ruleName) { //  match ruleName?
                        if (deleteFlag == 'delete') { // Yes.  Are we deleteing?
                            if (styleSheet.cssRules) { // Yes, deleting...
                                styleSheet.deleteRule(ii); // Delete rule, Moz Style
                            }
                            else { // Still deleting.
                                styleSheet.removeRule(ii); // Delete rule IE style.
                            } // End IE check.
                            return true; // return true, class deleted.
                        }
                        else { // found and not deleting.
                            return cssRule; // return the style object.
                        } // End delete Check
                    } // End found rule name
                } // end found cssRule
                ii++; // Increment sub-counter
            }
            while (cssRule) // end While loop
        } // end For loop
    } // end styleSheet ability check
    return false; // we found NOTHING!
} // end getCSSRule 
/**
 * Pour supprimer une règle CSS
 */
function killCSSRule(ruleName){ // Delete a CSS rule   
    return getCSSRule(ruleName, 'delete'); // just call getCSSRule w/delete flag.
} // end killCSSRule
/**
 * Pour ajouter une règle CSS
 */
function addCSSRule(ruleName){ // Create a new css rule
    if (document.styleSheets) { // Can browser do styleSheets?
        if (!getCSSRule(ruleName)) { // if rule doesn't exist...
            if (document.styleSheets[0].addRule) { // Browser is IE?
                document.styleSheets[0].addRule(ruleName, null, 0); // Yes, add IE style
            }
            else { // Browser is IE?
                document.styleSheets[0].insertRule(ruleName + ' { }', 0); // Yes, add Moz style.
            } // End browser check
        } // End already exist check.
    } // End browser ability check.
    return getCSSRule(ruleName); // return rule we just created.
}

