var currentFontDelta = 0;
var fontSizeCookieName = "mobus_font_size";
function changeStyle(df) {
    var d = parseInt(df);
    if (d == currentFontDelta) {
        return;
    }
    d = (-currentFontDelta) + d;
    changeFontSize(d);
    currentFontDelta = parseInt(df);
    var dat = new Date();
    dat.setYear(dat.getFullYear() + 1);
    document.cookie = fontSizeCookieName + "=" + currentFontDelta + ";expires=" + dat + ";path=/";
    afterChangeStyle();
}

function changeFontSize(df) {
    try {
        var sh = document.styleSheets;
        if (sh) {
            for (var i = 0; i < sh.length; i++) {
                changeFontSizeStyleSheet(sh[i], df);
            }
        }
    } catch (e) {
    }
}

function changeFontSizeStyleSheet(sh, df) {
    if (sh.href.indexOf(document.location.host) == -1 && sh.href.indexOf("http://") != -1) {
        return;
    }
    try {
        var rules = sh.rules ? sh.rules : sh.cssRules;
        if (rules) {
            for (var j = 0; j < rules.length; j++) {
                if (rules.item(j).styleSheet != undefined) {
                    changeFontSizeStyleSheet(rules.item(j).styleSheet, df);
                } else {
                    changeFontSizeStyleSheetRules(rules.item(j).style, rules.item(j).selectorText, df);
                }
            }
        }
        var imports = sh.imports;
        if (imports) {
            for (var i = 0; i < imports.length; i++) {
                changeFontSizeStyleSheet(imports[i], df);
            }
        }
    } catch (e) {
    }
}
var escapedSelectors = new Array();

function isEscapeSelector(sel) {
    if (escapedSelectors[sel]) {
        return true;
    }
    for (var i = 0; i < escapedSelectors.length; i++) {
        if (sel.indexOf(escapedSelectors[i]) != -1) {
            return true;
        }
    }
    return false;
}

function changeFontSizeStyleSheetRules(r, st, df) {
    var t = r.fontSize;
    if (t) {
        if (isEscapeSelector(st)) {
            return;
        }
        var oldVal = t;
        var val = parseInt(t);

        val += df;
        try {
            if (val > 100) {
               // alert(val + " " + oldVal + " " + st);
            } else {
                r.fontSize = val + "px";
            }
        } catch (e) {
        }
    }
}

