//******************************************************************************************//
// Text sizing version 2.0 Script
//******************************************************************************************//
if (typeof CDC == "undefined") var CDC = new Object();
CDC.TextSizer = function() {

	//Set global variables
	var sizesArray = new Array("100%", "102%", "103%", "105%");
	var boxSizeArray = new Array("14px", "16px", "18px", "20px");
	var sizePointer;
	var ruleCounter;	// ruleCounter is used for Mozilla due to the necessity to write the new CSS rule in the last position so that it is applied.
	
	var CDC_SIZER_COOKIE_NAME = "sizePrefv2v2";

	// Private methods.

	function loadTextSize() {
		if (getCookie(CDC_SIZER_COOKIE_NAME) != "") {
			sizePointer = Number(getCookie(CDC_SIZER_COOKIE_NAME))
			// assure value is in expected range.
			if(sizePointer > 3) sizePointer = 3;
			if(sizePointer < 0) sizePointer = 0;
			// now apply the font
			if (document.styleSheets[0].cssRules) {
				ruleCounter = document.styleSheets[0].cssRules.length;
				// Mozilla
				document.styleSheets[0].insertRule("* {font-size: " + sizesArray[sizePointer] + ";}", ruleCounter);
			}
			else {
				//IE
				document.styleSheets[0].addRule("*", "{font-size: " + sizesArray[sizePointer] + ";}");
			}
		}
		else {
			sizePointer = 0;
		}
		
		//change display
		GetElementById("Size" + sizePointer).className = "selected";
	
		sizeBoxes();
	}
		
	function sizeBoxes() {
		for (var i = 0; i < boxSizeArray.length; i++) {
			GetElementById("Size" + i).style.fontSize = "11px";
			GetElementById("text-sizer").style.fontSize = "11px";
		}
	}

	// Public methods.
	return {
		render: function() {
			var sizerHTML = '<ul>\n';
				sizerHTML = sizerHTML + '<li class="first-child">Text size:</li>\n';
				sizerHTML = sizerHTML + '<li><a onclick="CDC.TextSizer.resize(0);" title="Small Text Size" id="Size0" class="default">s</a></li>\n';
				sizerHTML = sizerHTML + '<li><a onclick="CDC.TextSizer.resize(1);" title="Medium Text Size"id="Size1" class="default">m</a></li>\n';
				sizerHTML = sizerHTML + '<li><a onclick="CDC.TextSizer.resize(2);" title="Large Text Size" id="Size2" class="default">l</a></li>\n';
				sizerHTML = sizerHTML + '<li><a onclick="CDC.TextSizer.resize(3);" title="Extra Large Text Size" id="Size3" class="default">xl</a></li>\n';
			sizerHTML = sizerHTML + '</ul>';
			
			GetElementById('text-sizer').innerHTML = sizerHTML;
			loadTextSize();
		},
		resize: function(newSize) {
			//change display of current size to default
			GetElementById("Size" + sizePointer).className = "default";
			
			if (document.styleSheets[0].cssRules) {
			// Mozilla
				if (document.styleSheets[0].cssRules[0]) {
					if ((newSize >= 0) && (newSize < 4)) {
						sizePointer = newSize;
						ruleCounter = document.styleSheets[0].cssRules.length;
						document.cookie = CDC_SIZER_COOKIE_NAME + "=" + sizePointer + "; path=/; domain=.cdc.gov";
						document.styleSheets[0].insertRule("* {font-size: " + sizesArray[sizePointer] + ";}", ruleCounter);
					}
				}
			}	
			else if (document.styleSheets[0].rules) {
			// IE
				if ((newSize >= 0) && (newSize < 4)) {
					sizePointer = newSize;
					document.cookie = CDC_SIZER_COOKIE_NAME + "=" + sizePointer + "; path=/; domain=.cdc.gov";
					document.styleSheets[0].addRule("*", "{font-size: " + sizesArray[sizePointer] + ";}");
				}
			}
			
			//change display
			GetElementById("Size" + sizePointer).className = "selected";
			sizeBoxes();
		}
	};

}();

