var h_factor=2;

function setFont(size, element) {
	var elm = document.getElementById(element);
	if ( ! elm ) {
		return false;
	}
	size = parseInt (size);

	// Each tag has to be altered, because all got there own font-size defined in the css
	replace_size(elm, 'p', size);
	replace_size(elm, 'a', size);
	replace_size(elm, 'td', size);
	replace_size(elm, 'input', size);
	replace_size(elm, 'textarea', size);
	replace_size(elm, 'select', size);
	replace_size(elm, 'form', size);
	replace_size(elm, 'h1', size + h_factor);
	replace_size(elm, 'h2', size + h_factor);
    replace_size(elm, 'h3', size + h_factor);

    // Store the selected font-size in a cookie
	createCookie('fontSize', size, 31);

    // Underline the selected font-size link
    setSelectedSize(size);

	return false;
}

function setSelectedSize(size) {

	var elm = document.getElementById('font_options');
	var elms = elm.getElementsByTagName('a');
    for(i=0;i<elms.length;i++) {
      elms[i].style.textDecoration = "none";
    }

    if(elm = document.getElementById('font_size_' + size)) {
    	elm.style.textDecoration = 'underline';
   	}
}


function replace_size(elm, tag, size) {
	var elms = elm.getElementsByTagName(tag);
    for(i=0;i<elms.length;i++) {
      elms[i].style.fontSize = size+"px"
    }
}

function init_font() {
	var size = readCookie('fontSize');
	if (size) {
		setFont(size, 'content');
	}
	return true;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

