// A global variable to keep track of the font size (-2,-1,0,1,2)
var size = 0;

function initFontSize() {
	var cookie = readCookie('cpgfontsizer');
	
	var headerContent = document.getElementById("header");
	var navcolumnContent = document.getElementById("nav-col"); 
	var footerContent = document.getElementById("footer"); 
	var smallerLink = document.getElementById("smaller");
	var biggerLink = document.getElementById("bigger");
	
	var mainContentElements = getContentElementsByClass( );
	var breadcrumbsContent = getElementByClassName("breadcrumbs");
	
	var feedbackElements = getElementsByClassName("-description","-field-area");


	if (cookie == -2) {	
		size = -2;
		headerContent.style.fontSize = "0.9em";
		navcolumnContent.style.fontSize = "0.9em";
		for (i=0;i<mainContentElements.length;i++){
			mainContentElements[i].style.fontSize = "0.6em";
		}
		breadcrumbsContent.style.fontSize="0.8em";

		for (i=0;i<feedbackElements.length;i++){
			feedbackElements[i].style.fontSize = "0.5em";
		}

		footerContent.style.fontSize = "0.9em";
		// Disable the "Decrease Text Size" icon link
		smallerLink.removeAttribute('href');
		// Set the "Decrease Text Size" icon to grey
		smallerLink.firstChild.src = "/shared_cpg/images/text_minus_grey.gif";
	}	
	if (cookie == -1) {	
		size = -1;
		headerContent.style.fontSize = "0.95em";
		navcolumnContent.style.fontSize = "0.95em";
		for (i=0;i<mainContentElements.length;i++){
			mainContentElements[i].style.fontSize = "0.8em";
		}
		breadcrumbsContent.style.fontSize="0.85em";
		for (i=0;i<feedbackElements.length;i++){
			feedbackElements[i].style.fontSize = "0.8em";
		}
		footerContent.style.fontSize = "0.95em";
	}	
	if (cookie == 1) {	
		size = 1;
		headerContent.style.fontSize = "1.05em";
		navcolumnContent.style.fontSize = "1.05em";
		for (i=0;i<mainContentElements.length;i++){
			mainContentElements[i].style.fontSize = "1.2em";
		}
		breadcrumbsContent.style.fontSize="0.95em";
		for (i=0;i<feedbackElements.length;i++){
			feedbackElements[i].style.fontSize = "1.4em";
		}
		footerContent.style.fontSize = "1.05em";
	}	
	if (cookie == 2) {	
		size = 2;
		headerContent.style.fontSize = "1.1em";
		navcolumnContent.style.fontSize = "1.1em";
		for (i=0;i<mainContentElements.length;i++){
			mainContentElements[i].style.fontSize = "1.4em";
		}
		breadcrumbsContent.style.fontSize="1em";

		for (i=0;i<feedbackElements.length;i++){
			feedbackElements[i].style.fontSize = "1.7em";
		}

		footerContent.style.fontSize = "1.1em";
		// Disable the "Decrease Text Size" icon link
		biggerLink.removeAttribute('href');
		// Set the "Decrease Text Size" icon to grey
		biggerLink.firstChild.src = "/shared_cpg/images/text_plus_grey.gif";
	}	
}

function textSize(obj)
{
	// Preload the greyed out images
	if (document.images) {
    img1 = new Image();
    img1.src = "/shared_cpg/images/text_minus_grey.gif";
		img2 = new Image();
    img2.src = "/shared_cpg/images/text_plus_grey.gif";
	}
	
	// Declare the content areas
	var headerContent = document.getElementById("header");
	var navcolumnContent = document.getElementById("nav-col"); 
	var footerContent = document.getElementById("footer"); 
	
	var mainContentElements = getContentElementsByClass();
    var breadcrumbsContent= getElementByClassName("breadcrumbs");

    var feedbackElements= getElementsByClassName("-description","-field-area");

	// Declare the incremation values
	var hc_increment = 0.05; 
	var ncc_increment = 0.05; 
	var cc_increment = 0.2;
	var fc_increment = 0.05;
	var bc_increment = 0.05;
	var fbc_increment = 0.3;

        var hc_currentSize;
        var ncc_currentSize;
        var cc_currentSize = new Array();
        var fc_currentSize;
	var bc_currentSize;
        var fbc_currentSize = new Array();		

	// Get (or set) the font size
	if (headerContent) { hc_currentSize = parseFloat(headerContent.style.fontSize); }
	if (navcolumnContent) { ncc_currentSize = parseFloat(navcolumnContent.style.fontSize); } 
	if (breadcrumbsContent) {  bc_currentSize = parseFloat(breadcrumbsContent.style.fontSize); } 
	
	for (i=0;i<mainContentElements.length;i++){
		if(mainContentElements[i].style.fontSize == ""){
			mainContentElements[i].style.fontSize="1.0em";
		}
		cc_currentSize[i] = parseFloat(mainContentElements[i].style.fontSize); 
	}
	for (i=0;i<feedbackElements.length;i++){
		if(feedbackElements[i].style.fontSize == ""){
			feedbackElements[i].style.fontSize="1.1em";
		}
		fbc_currentSize[i] = parseFloat(feedbackElements[i].style.fontSize); 
	}

	if (footerContent) { fc_currentSize = parseFloat(footerContent.style.fontSize); }

	if (!hc_currentSize) {
 		hc_currentSize = 1; 
	}
	if (!ncc_currentSize) {
 		ncc_currentSize = 1.0; 
	}
	if (!cc_currentSize) {
		cc_currentSize[0] = 1;
	}
	if (!fc_currentSize) {
		fc_currentSize = 1;
	}
	if (!bc_currentSize) {
 		bc_currentSize = 0.9; 
	}

	if (!fbc_currentSize) {
		fbc_currentSize[0] = 1.1;
	}
	//Handle text sizing
	// If the "Decrease Text Size" icon is clicked
	if (obj.id == "smaller")
	{
		// If we haven't reached the lower size limit of -2
		if (size > -2) {
			// Decrease the size of text
			if (headerContent) { headerContent.style.fontSize = (hc_currentSize - hc_increment) + "em"; }
			if (navcolumnContent) { navcolumnContent.style.fontSize = (ncc_currentSize - ncc_increment) + "em"; }
			if (breadcrumbsContent) { breadcrumbsContent.style.fontSize = (bc_currentSize - bc_increment) + "em"; }
			
			for (i=0;i<mainContentElements.length;i++){
					mainContentElements[i].style.fontSize = (cc_currentSize[i] - cc_increment) + "em"; 
			}
			
			for (i=0;i<feedbackElements.length;i++){
					feedbackElements[i].style.fontSize = (fbc_currentSize[i] - fbc_increment) + "em"; 
			}

			if (footerContent) { footerContent.style.fontSize = (fc_currentSize - fc_increment) + "em"; }
			// Decriment the size tracker
			size -= 1;
			// Make sure the "Increase Text Size" icon link is active
			obj.nextSibling.setAttribute('href', '#');
			// and make sure the "Increase Text Size" icon is blue
			obj.nextSibling.firstChild.src = "/shared_cpg/images/text_plus.gif";
			//alert(size);
			// Set the size in a cookie
			createCookie('cpgfontsizer',size,'1');
			// If we have reaced the lower size limit of -2
			if (size == -2 ) {
				// Disable the "Decrease Text Size" icon link
				obj.removeAttribute('href');
				// Set the "Decrease Text Size" icon to grey
				obj.firstChild.src = "/shared_cpg/images/text_minus_grey.gif";
			}
		}
	}
	// If the "Increase Text Size" icon is clicked
	else if (obj.id == "bigger")
	{
		// If we haven't reached the upper size limit of 2
		if (size < 2) {
			// Increase the size of the text
			if (headerContent) { headerContent.style.fontSize = (hc_currentSize + hc_increment) + "em"; }
			if (navcolumnContent) { navcolumnContent.style.fontSize = (ncc_currentSize + ncc_increment) + "em"; }
			if (breadcrumbsContent) { breadcrumbsContent.style.fontSize = (bc_currentSize + bc_increment) + "em"; }

			for (i=0;i<mainContentElements.length;i++){
				mainContentElements[i].style.fontSize = (cc_currentSize[i] + cc_increment) + "em"; 
			}
			
			for (i=0;i<feedbackElements.length;i++){
				feedbackElements[i].style.fontSize = (fbc_currentSize[i] + fbc_increment) + "em"; 
			}
			if (footerContent) { footerContent.style.fontSize = (fc_currentSize + fc_increment) + "em"; }
			// Incriment the size tracker
			size += 1;
			// Make sure the "Decrease Text Size" icon link is active
			obj.previousSibling.setAttribute('href', '#');
			// and make sure the "Decrease Text Size" icon is blue
			obj.previousSibling.firstChild.src = "/shared_cpg/images/text_minus.gif";
			//alert(size);
			// Set the size in a cookie
			createCookie('cpgfontsizer',size,'1');
			// If we have reached the upper size limit if 2
			if (size == 2) {
				// Disable the "Increase Text Size" icon link
				obj.removeAttribute('href');
				// Set the "Increase Text Size" icon to grey
				obj.firstChild.src = "/shared_cpg/images/text_plus_grey.gif";
			}
		}
	}
	return true;
}

function getContentElementsByClass() {

    var objArray = new Array();
	var listContentClass = "list-content";
	var contentClass = "main-content";
	var contentOverviewClass= "overview-content";
	var siteMapClass = "sitemap";
	var i; 
	var elements = document.getElementsByTagName('div');
	for (i=0;i<elements.length;i++){ 
		curId = elements[i].className;
		if( curId == listContentClass || curId == contentClass || curId == contentOverviewClass || curId.indexOf(siteMapClass) != -1){
		    objArray.push( elements[i] );
                    
        }
	} 

   return objArray;

}

function getElementByClassName(objClassName) {

    var thisObj;
	var i; 
	var elements = document.getElementsByTagName('div');
	for (i=0;i<elements.length;i++){ 
		curId = elements[i].className;
		if( curId == objClassName ){
        		thisObj=elements[i];
	          	break;
        	}
	} 

   return thisObj;

}

function getElementsByClassName(objClassName,fieldClassName) {

    var objs=new Array();
	var i; 
	var elements = document.getElementsByTagName('div');
	for (i=0;i<elements.length;i++){ 
		curId = elements[i].className;
		if( curId == objClassName || curId == fieldClassName){
	             objs.push(elements[i]);
             
        	}
	} 

   return objs;

}

