var styler = function() {
    var cs;
    var title = "normal";
    return {
        init: function() {
                cs = styler.gc();
            if (cs) {
                styler.set(cs);
            }
        },
        set: function(c) {
            var i, a, main;
            for (i = 0; (a = document.getElementsByTagName("link")[i]); i++) {
                if (a.getAttribute("rel").indexOf("alternate style") != -1 && a.getAttribute("title") != null) {
                    a.disabled = true;
                    if (a.getAttribute("title") == c) {
                        a.disabled = false;
                        title = a.getAttribute("title");
                    }
                }
            }
            styler.sc(c);
        },
        hilite: function(c) {
            removeClass(document.getElementById("a_small"), "fontSizeSelectorSelected");
            removeClass(document.getElementById("a_normal"), "fontSizeSelectorSelected");
            removeClass(document.getElementById("a_large"), "fontSizeSelectorSelected");
            if (title != null)
                addClass(document.getElementById("a_" + title), "fontSizeSelectorSelected");
            else
                addClass(document.getElementById("a_normal"), "fontSizeSelectorSelected");

        },
        change: function(c) {
            styler.set(c);
            styler.hilite();
        },
        sc: function(st) {
            var d = new Date(); d.setDate(d.getDate() + 365);
            document.cookie = "SVstyler=" + escape(st) + ";expires=" + d.toGMTString();
        },
        gc: function() {
            if (document.cookie.length > 0) {
                var c = 'SVstyler'; st = document.cookie.indexOf(c + "=");
                if (st != -1) {
                    st = st + c.length + 1; en = document.cookie.indexOf(";", st);
                    if (en == -1) en = document.cookie.length;
                    return unescape(document.cookie.substring(st, en));
                }
            }
            return "normal";
        }
    }
} ();

function hasClass(ele, cls) {
    if (ele == null)
        return false;
    else
	    return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
	if (!this.hasClass(ele,cls) && ele != null) ele.className += " "+cls;
}

function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
    	var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
}
