function addClassName( obj, cl ) {
    var name = new RegExp( "\\b" + cl + "\\b" );

    if( !name.test( obj.className ) ) {
        if( obj ) {
            if( obj.className != "" ) {
                obj.className += " " + cl;
            } else {
                obj.className = cl;
            }
        }
    }
}

function removeClassName( obj, cl ) {
    var name = new RegExp( "\\b" + cl + "\\b" );

    if( name.test( obj.className ) ) {
        obj.className = obj.className.replace( name, "" );
    }
}

function changecss( theClass, element, value ) {
    //documentation for this script at http://www.shawnolson.net/a/503/
    var cssRules;

    if( document.all ) {
        cssRules = 'rules';
    } else if( document.getElementById ) {
        cssRules = 'cssRules';
    }

    for( var S = 0; S < document.styleSheets.length; S++ ) {
        for( var R = 0; R < document.styleSheets[ S ][ cssRules ].length; R++ ) {
            if( document.styleSheets[ S ][ cssRules ][ R ].selectorText == theClass ) {
                document.styleSheets[ S ][ cssRules ][ R ].style[ element ] = value;
            }
        }
    }
}

function appendStyleRule( ruleSet ) {
    //URL: http://www.faqts.com/knowledge_base/view.phtml/aid/11843
    if( document.styleSheets ) {
        if( document.styleSheets.length == 0 ) {
            appendStyleElement();
        }
        for( var i = 0; i < document.styleSheets.length; i++ ) {
            if( document.styleSheets[ i ].insertRule ) {
                document.styleSheets[ i ].insertRule( ruleSet, document.styleSheets[ i ].cssRules.length );
            } else if( document.styleSheets[ i ].addRule ) {
                var ruleSetPattern = /(.*)({([^}]*)})/;
                var match = ruleSetPattern.exec( ruleSet );
                if( match ) {
                    var selector = match[ 1 ];
                    var declarations = match[ 3 ];
                    document.styleSheets[ i ].addRule( selector, declarations );
                }
            }
        }
    }
}

function appendStyleElement() {
    //URL: http://www.faqts.com/knowledge_base/view.phtml/aid/11843
    if( document.createElement ) {
        var styleElement = document.createElement( "style" );
        if( styleElement ) {
            styleElement.type = "text/css";
            var headElement = document.getElementsByTagName( "head" )[ 0 ];
            headElement.appendChild( styleElement );
        }
    }
}
