﻿///text changer///
/* 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: 'whiteWrap',   	 //set here the id of the element (div, p) within you want to change the text
    defaultFS: 1.02,         //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('You need to have javascript enabled on your broswer to use this tool.'); } else {
            cpel.className = 'textsize';
            var u = document.createElement('ul');
            cpel.innerHTML =
		'<span id="reset">Text size</span> <ul> <li id="increase"><a href="#" title="Increase font size">&nbsp;&nbsp;Larger</a></li>' +
		'<li id="decrease"><a href="#" title="Decrease font size">|&nbsp;Smaller</a></li></ul>'
            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');
            reset.onclick = function() { textChanger.changeSize(0); return false; };
        }
    },

    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 > 2.0) fSize = 2.0;
        }
        if (val == -1) {
            fSize -= 0.11;
            if (fSize < 0.5) fSize = 0.5;
        }
        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));
    }
}
