var lastSelectedSize = 100;   
var styleRulesArray = [];

function textSize(dir){
    if (dir == 1) {
        lastSelectedSize += 20;
    } else {
        lastSelectedSize -= 20;
    }
        
    if (lastSelectedSize < 100) {
        lastSelectedSize = 100;
    }

    changeSize(lastSelectedSize);
}

function changeSize(intSize){
    intSize = parseInt(intSize, 10);                    
    setFontSize(".Btex", intSize);                              
    setFontSize(".ArtList", intSize);
    setFontSize(".ArtList input", intSize);                              
    setFontSize(".ArtList h1", intSize);                              
    setFontSize(".ArtList h2", intSize);                              
    setFontSize(".ArtList p", intSize);                              
    setFontSize(".ArtList ul li, .ArtList ol li", intSize);
    setFontSize(".ArtList ul li", intSize);
    setFontSize(".ArtList a", intSize);                              
    setFontSize(".Rub1", intSize);
    setFontSize(".Rub1_Black", intSize);
    setFontSize(".Rub2", intSize);
    setFontSize(".Rub2_Black", intSize);
    setFontSize(".Rub3", intSize);
    setFontSize(".Rub4", intSize);
    setFontSize(".Rub5", intSize);
    setFontSize("#ArticleBody p", intSize);
    setFontSize("#ArticleTop p", intSize);
    setFontSize(".Ing", intSize);
    setFontSize(".ThemeHdr", intSize);
    setCookie("ArtFontSizeNtSe", intSize);
}


function setFontSize(stringRuleName, intNewSize){
    var ruleToChange = getStyleRuleByName(stringRuleName);            
    if (ruleToChange){                              
        var fontSize = ruleToChange.style.fontSize;
        var styleRule = null;
        var originalFontSize = 12;
        for (var i = 0; i < styleRulesArray.length; i++) {
            if (styleRulesArray[i] && styleRulesArray[i][0] == stringRuleName) {
                styleRule = styleRulesArray[i];
                originalFontSize = parseInt(styleRulesArray[i][1], 10);
                break;
            }
        }
        
        if (styleRule === null) {
            styleRule = [];
            originalFontSize = parseInt(fontSize.substring(0, fontSize.indexOf("px")), 10);
            styleRule.push(stringRuleName, originalFontSize);
            styleRulesArray.push(styleRule);                    
        }                                    
        
        var newFontSize = lastSelectedSize > 100 ? Math.ceil(originalFontSize * intNewSize / 100.0) : originalFontSize;
        newFontSize = isNaN(newFontSize)? 12:newFontSize;
        if (ruleToChange.style.setProperty) {// non ie
            ruleToChange.style.setProperty("font-size", String(newFontSize) + "px", "important");              
        } else  {
            ruleToChange.style.fontSize = String(newFontSize) + "px";                                                                                                                                
        }
    }   
}

function getStyleRuleByName(stringName){
    try {
        if (!document.styleSheets) {
              return;
        }
        	            
        var theRules = [];
        for (i = 0; i < document.styleSheets.length; i++){
            if (document.styleSheets[i].rules) {
                theRules = document.styleSheets[i].rules;
            }else if (document.styleSheets[i].cssRules){
                theRules = document.styleSheets[i].cssRules;
            } 
            
            for (j = 0; j < theRules.length; j++){
               if (theRules[j].selectorText.toLowerCase() == stringName.toLowerCase()){                                                                                    
                    return theRules[j];
               }
            }
        }
    } catch (Err) {}
}

function setCookie(stringCookieName, stringCookieValue){
  var today = new Date();
  var expires = 60 * (1000 * 60 * 60 * 24);
  var expires_date = new Date(today.getTime() + (expires));
  document.cookie = stringCookieName + "=" + escape(stringCookieValue) + ";path=/;expires=" + expires_date.toGMTString();
}

function getCookie(stringCookieName){
  var start = document.cookie.indexOf(stringCookieName + "=");
  var len = start + stringCookieName.length + 1;
  if (!start && (stringCookieName != document.cookie.substring(0, stringCookieName.length))) {
    return null;
  }
  if (start == -1) {
    return null;
  }
  var end = document.cookie.indexOf(";", len);
  if (end == -1) {
    end = document.cookie.length;
  }
  
  return unescape(document.cookie.substring(len, end));
}

function loadArticleFontSize() {
  var selectedSize = getCookie("ArtFontSizeNtSe");
  if (selectedSize !== null) {
    lastSelectedSize = parseInt(selectedSize, 10);
    changeSize(lastSelectedSize);    
  } else {
    changeSize(100);
    lastSelectedSize = 100;
  }
}