var min = 8;
var max = 20;

function getNormalFontSize(name) {
	normal = 11;
	switch (name) {
	case "h1":
		normal = 14;
		break;
	case "h2":
		normal = 13;
		break;
	case "product-name":
		normal = 16;
		break;
	case "product-synopsis":
		normal = 14;
		break;
	case "p":
	case "li":
	case "td":
	default:
		normal = 11;
	}
	return normal;
}

function increaseFontSize() {
	increaseFontSizeType('p');
	increaseFontSizeType('li');
	increaseFontSizeType('td');
	increaseFontSizeType('h1');
	increaseFontSizeType('h2');
	increaseFontSizeClass('product-name');
	increaseFontSizeClass('product-synopsis');
}

function getElementsByClassName(oElm, strTagName, strClassName) {
	var arrElements = (strTagName == "*" && oElm.all) ? oElm.all : oElm
			.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for ( var i = 0; i < arrElements.length; i++) {
		oElement = arrElements[i];
		if (oRegExp.test(oElement.className)) {
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function increaseFontSizeClass(className) {
	var p = getElementsByClassName(document, "*", className);
	for (i = 0; i < p.length; i++) {
		if (p[i].style.fontSize) {
			var s = parseInt(p[i].style.fontSize.replace("px", ""));
		} else {
			var s = getNormalFontSize(className);
		}
		if (s != max) {
			s += 1;
		}
		p[i].style.fontSize = s + "px"
	}
}

function increaseFontSizeType(type) {
	var p = document.getElementsByTagName(type);
	for (i = 0; i < p.length; i++) {
		if (p[i].style.fontSize) {
			var s = parseInt(p[i].style.fontSize.replace("px", ""));
		} else {
			var s = getNormalFontSize(type);
		}
		if (s != max) {
			s += 1;
		}
		p[i].style.fontSize = s + "px"
	}
}

function decreaseFontSize() {
	decreaseFontSizeType('p');
	decreaseFontSizeType('li');
	decreaseFontSizeType('td');
	decreaseFontSizeType('h1');
	decreaseFontSizeType('h2');
	decreaseFontSizeClass('product-name');
	decreaseFontSizeClass('product-synopsis');
}

function decreaseFontSizeType(type) {
	var p = document.getElementsByTagName(type);
	for (i = 0; i < p.length; i++) {
		if (p[i].style.fontSize) {
			var s = parseInt(p[i].style.fontSize.replace("px", ""));
		} else {
			var s = getNormalFontSize(type);
		}
		if (s != min) {
			s -= 1;
		}
		p[i].style.fontSize = s + "px"
	}
}

function decreaseFontSizeClass(className) {
	var p = getElementsByClassName(document, "*", className);
	for (i = 0; i < p.length; i++) {
		if (p[i].style.fontSize) {
			var s = parseInt(p[i].style.fontSize.replace("px", ""));
		} else {
			var s = getNormalFontSize(className);
		}
		if (s != min) {
			s -= 1;
		}
		p[i].style.fontSize = s + "px"
	}
}

function normalizeFontSize() {
	normalizeFontSizeType('p');
	normalizeFontSizeType('li');
	normalizeFontSizeType('td');
	normalizeFontSizeType('h1');
	normalizeFontSizeType('h2');
	normalizeFontSizeClass('product-name');
	normalizeFontSizeClass('product-synopsis');
}

function normalizeFontSizeType(type) {
	var p = document.getElementsByTagName(type);
	for (i = 0; i < p.length; i++) {
		if (p[i].style.fontSize) {
			var s = parseInt(p[i].style.fontSize.replace("px", ""));
		} else {
			var s = getNormalFontSize(type);
		}
		if (s != min) {
			s = getNormalFontSize(type);
		}
		p[i].style.fontSize = s + "px"
	}
}

function normalizeFontSizeClass(className) {
	var p = getElementsByClassName(document, "*", className);
	for (i = 0; i < p.length; i++) {
		if (p[i].style.fontSize) {
			var s = parseInt(p[i].style.fontSize.replace("px", ""));
		} else {
			var s = getNormalFontSize(className);
		}
		if (s != min) {
			s = getNormalFontSize(className);
		}
		p[i].style.fontSize = s + "px"
	}
}
