//FW Resize Font Javascript//
/**
* FW Resize Font Javascript
* @package Joomla
* @copyright Copyright (C) 2006 Futureworkz Pte. Ltd. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* 
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*/
function changeFont(tag, resize, defaultS) {

	var size = parseFloat(tag.style.fontSize.substring(0,tag.style.fontSize.length-2));
	defaultS = defaultS + resize;
	if (resize > 0) {
		if (size) {
			tag.style.fontSize = (size + increment) + 'px';
		} else {
			tag.style.fontSize = defaultS + 'px';
		}
	}
	else {
		if (size && size > 2) {
			tag.style.fontSize = (size - increment) + 'px';
		} else {
			tag.style.fontSize = defaultS + 'px';
		}
	}
}
function FWresizeFont(resize) {
	if (!document.getElementById) {
		return;
	}
	divTags = document.getElementsByTagName('div');
	for (h = 0 ; h < divTags.length; h++) {
		if (divTags[h].id == 'content') {
			for (i = 0 ; i < tags.length ; i++ ) {		
				allTags = divTags[h].getElementsByTagName(tags[i]);
				for (k = 0 ; k < allTags.length ; k++) {
					defaultS = defaultSize;
					if (tags[i] == 'h1'){ defaultS = defaultH1; }
					else if (tags[i] == 'h2') defaultS = defaultH2;
					else if (tags[i] == 'h3') defaultS = defaultH3;
					else if (tags[i] == 'h4') defaultS = defaultH4;
					else if (tags[i] == 'h5') defaultS = defaultH5;
					else if (tags[i] == 'h6') defaultS = defaultH6;
					else if (tags[i] == 'div' && allTags[k].id == 'pagetitle') {
						defaultS = defaultPageTitle;
					}
					changeFont(allTags[k], resize, defaultS);
				}
			}
		}	
	}	
	resize > 0 ? resizeCounter++ : resizeCounter--;
	
}

tags = new Array( 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'td', 'span', 'ul', 'p');
defaultSize = 12;
defaultH1 = 12;
defaultH2 = 12;
defaultH3 = 12;
defaultH4 = 14;
defaultH5 = 16;
defaultH6 = 18;
defaultPageTitle = 16;
increment = 1;
resizeCounter = 0;

function setStyleByClass(t,c,p,v){
	var elements = document.getElementsByTagName(t);
	for(var i = 0; i < elements.length; i++){
		var node = elements.item(i);
		for(var j = 0; j < node.attributes.length; j++) {
			if(node.attributes.item(j).nodeName == 'class') {
				if(node.attributes.item(j).nodeValue == c) {
					eval('node.style.' + p + " = '" +v + "'");
				}
			}
		}
	}
}

function setFontSize(resizeCounter) {
	divContent = document.getElementsByTagName('div');
	for (h = 0 ; h < divContent.length; h++) {
		if (divContent[h].id == 'content') {
			for (i = 0 ; i < tags.length ; i++ ) {		
				allTags = divContent[h].getElementsByTagName(tags[i]);		
				for (k = 0 ; k < allTags.length ; k++) {
					var size = parseInt(allTags[k].style.fontSize.substring(0,allTags[k].style.fontSize.length-2));
					var resize = size + resizeCounter;			
					if (!size) {
						allTags[k].style.fontSize = (parseInt(defaultSize) + parseInt(resizeCounter)) + 'px';
					} else if (size && resize > 0) {
						allTags[k].style.fontSize = resize + 'px';
					}
				}
			}
		}
	}	
}
//cookie functions for remember the font sizes across pages
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 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;
}

function setUserOptions(){
	cookie = readCookie("FWresizeFont");
	if (cookie) {
		resizeCounter = cookie;
	} else {
		return null;
	}
	
	setFontSize(resizeCounter);
}

function saveSettings()
{
  createCookie("FWresizeFont", resizeCounter, 365);
}

//mhu: 20081001 - will not save to cookies with these two lines commented out.
//window.onload = setUserOptions;
//window.onunload = saveSettings;