/* Text changer - light version.
Let your text's font size customizable.
by Marco Rosella - http://www.centralscrutinizer.it/en/design/js-php/text-changer
v0.2 - May 18, 2006
*/
window.onload = function () {
    textChanger.init();
}

var textChanger = {
    cpanel: 'textchanger',  //set here the id of the element (div, p) within you want to insert the control panel
    element: 'content',   	 //set here the id of the element (div, p) within you want to change the text
    defaultFS: 1,         //set here the default font size in 'em'
    init: function () {
        var cpel = document.getElementById(textChanger.cpanel);
        var el = document.getElementById(textChanger.element);
        if (cpel == null || el == null) { alert('The elements with the \"' + textChanger.cpanel + '\" and/or \"' + textChanger.element + '\" ID do not exist in HTML source.'); } else {
            var u = document.createElement('ul');
            cpel.appendChild(u);
            u.innerHTML =
        '<li class="textChangeBox1">Font Size </li>' +
		'<li id="decrease" class="textChangeBox" style="font-size:0.75em"><a href="#" title="Decrease font size">A</a></li>' +
        '<li id="reset" class="textChangeBox"><a href="#" title="Reset font size">A</a></li>' +
		'<li id="increase" class="textChangeBox" style="font-size:1.25em"><a href="#" title="Increase font size">A</a></li>'
            var sz = textChanger.getCookie();
            el.style.fontSize = sz ? sz + 'em' : textChanger.defaultFS + 'em';
            var incr = document.getElementById('increase');
            incr.onclick = function () { textChanger.changeSize(1); return false; };
            var decr = document.getElementById('decrease');
            decr.onclick = function () { textChanger.changeSize(-1); return false; };
            var reset = document.getElementById('reset');
            try {
                reset.onclick = function () { textChanger.changeSize(0); return false; };
            } catch (e) { }
        }
    },

    changeSize: function (val) {
        var el = document.getElementById(textChanger.element);
        var size = el.style.fontSize.substring(0, 3);
        var fSize = parseFloat(size, 10);
        if (val == 1) {
            fSize += 0.11;
            if (fSize > 1.10) fSize = 1.11;
        }
        if (val == -1) {
            fSize -= 0.11;
            if (fSize < 0.90) fSize = 0.89;
        }
        if (val == 0) {
            fSize = textChanger.defaultFS;
        }
        el.style.fontSize = fSize + 'em';
        textChanger.updateCookie(fSize);
    },


    updateCookie: function (vl) {
        var today = new Date();
        var exp = new Date(today.getTime() + (365 * 24 * 60 * 60 * 1000)); //the cookie will expire in one year  
        document.cookie = 'textChangerL=size=' + vl + ';' + 'expires=' + exp.toGMTString() + ';' + 'path=/';
    },

    getCookie: function () {
        var cname = 'textChangerL=size=';
        var start = document.cookie.indexOf(cname);
        var len = start + cname.length;
        if ((!start) && (cname != document.cookie.substring(0, cname.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));
    }
}
