/**
 *  @projectDescription This file provies functions to modify the CSS-Rules.
 *  @author     Patrik Skoog
 *  @version    1.0
 *  @sdoc       wsCssRules.sdoc
 */


/* ************************************************************************** *
 * ** Public Methods ******************************************************** *
 * ************************************************************************** */
/** @id wsGetCSSRule */
function wsGetCSSRule(cssRuleName, deleteFlag) {  
  if (document.styleSheets) {
    for (var i=0; i<document.styleSheets.length; i++) {
      var _styleSheets  = document.styleSheets[i];
      var _ii           = 0;
      var _cssRule      = false;
      do {
        if (_styleSheets.cssRules) {
          _cssRule = _styleSheets.cssRules[_ii];
        }
        else {
          _cssRule = _styleSheets.rules[_ii];
        }
        if (_cssRule) {
          if (_cssRule.selectorText === cssRuleName) {
            if (deleteFlag === 'delete') {
              if (_styleSheets.cssRules) {
                _styleSheets.deleteRule(_ii);
              }
              else {
                _styleSheets.removeRule(_ii);
              }
              return true;
            }
            else {
              return _cssRule;
            }
          }
        }
        _ii++;
      } while (_cssRule);
    }
  }
  return false;
}/*wsGetCSSRule*/

/** @id wsKillCSSRule */
function wsKillCSSRule(cssRuleName) {
  return getCSSRule(cssRuleName, 'delete');
}/*wsKillCSSRule*/

/** @id wsAddCSSRule */
function wsAddCSSRule(cssRuleName) {
  if (document.styleSheets) {
    if (!getCSSRule(cssRuleName)) {
      if (document.styleSheets[0].addRule) {
        document.styleSheets[0].addRule(cssRuleName, null, 0);
      }
      else {
        document.styleSheets[0].insertRule(cssRuleName + ' { }', 0);
      }
    }
  }
  return getCSSRule(cssRuleName);
}/*wsAddCSSRule*/

/** @id wsFixCSSPng */
function wsFixCSSPng() {
  if (document.styleSheets) {
    for (var i=0; i<document.styleSheets.length; i++) {
      var _styleSheets  = document.styleSheets[i];
      var _ii           = 0;
      var _cssRule      = false;
      do {
        if (_styleSheets.cssRules) {
          _cssRule = _styleSheets.cssRules[_ii];
        }
        else {
          _cssRule = _styleSheets.rules[_ii];
        }
        if (_cssRule) {
          var _bgImage = _cssRule.style.backgroundImage;          
          if ( _bgImage.length > 0 ) {
            var _fileName = _bgImage.replace(/url\([']?([:\\\/.\w]+)[']?\)/g, '$1');
            if ( _fileName.match(/.png/ig) ) {
              var _filter = '';
              _filter += 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'';
              _filter += _fileName + '\', sizingMethod=\'scale\')';
              _cssRule.style.backgroundImage = '';
              _cssRule.style.filter = _filter;
            }
          }
        }
        _ii++;
      } while (_cssRule);
    }
  }
} /*wsFixCSSPng*/