//---------------------------------------------------
// CONFIGURATION
//---------------------------------------------------

var largeFontSize = '100%';
var cookieName = 'fontsize';
var parentDiv = "breadcrumb";
var smElement = null;
var lgElement = null;
var smImgOnFilename = 'http://www.landuse.alberta.ca/App_Themes/Default/images/interface/resizerSmOn.gif';
var smImgOffFilename = 'http://www.landuse.alberta.ca/App_Themes/Default/images/interface/resizerSm.gif';
var lgImgOnFilename = 'http://www.landuse.alberta.ca/App_Themes/Default/images/interface/resizerLgOn.gif';
var lgImgOffFilename = 'http://www.landuse.alberta.ca/App_Themes/Default/images/interface/resizerLg.gif';

//---------------------------------------------------
// No need to change anything below here
//---------------------------------------------------

var lgImgOn = null;
var lgImgOff = null;
var smImgOn = null;
var smImgOff = null;
var gUseLarge = false;

// Set up Event Listener - creates addEvent
function addEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) {
	elm.addEventListener(evType, fn, useCapture);
	return true;
	} else if (elm.attachEvent) {
	var r = elm.attachEvent('on' + evType, fn);
	return r;
	} else {
	elm['on' + evType] = fn;
	}
}

function detectCookie()
{
	if (readCookie(cookieName) == 'large')
	{
		textResizerGoBig();
	}
	else
	{
		textResizerGoSmall();
	}
}

function textResizerInit() 
{
	// Initialize Scripts - is this a browser that understands DOM?
	if (textResizerScriptingOk())
	{
		// Does the parent div exist?
		if ( document.getElementById(parentDiv) == null )
		{
			return;
		}
		
		// create ul
		var ul = document.createElement("ul");
		ul.id = "textResizer";
		
		var li = document.createElement("li");
		
		smElement = document.createElement("img");
		if (!gUseLarge)
		{
			smElement.src = smImgOnFilename;
		}
		else
		{
			smElement.src = smImgOffFilename;
		}
		smElement.alt = "Make Text Smaller";
		smElement.id = "resizerSmImg";
		
		li.appendChild (smElement);
		
		ul.appendChild (li);
		
		lgElement = document.createElement("img");
		if (!gUseLarge)
		{
			lgElement.src = lgImgOffFilename;
		}
		else
		{
			lgElement.src = lgImgOnFilename;
		}
		lgElement.alt = "Make Text Bigger";
		lgElement.id = "resizerLgImg";
		
		var li = document.createElement("li");
		
		li.appendChild (lgElement);
		
		ul.appendChild (li);	
				
		// add handlers to anchors
		addEvent( smElement, 'click', textResizerGoSmall, false);
		addEvent( lgElement, 'click', textResizerGoBig, false);
		
		// insert the text resizer after the search form
		var parent = document.getElementById(parentDiv);
		
		parent.insertBefore (ul, parent.firstChild);
	}
}

function textResizerPrecacheImages()
{
	smImgOn = new Image();
	smImgOn.src = smImgOnFilename;

	smImgOff = new Image();
	smImgOff.src = smImgOffFilename;

	lgImgOn = new Image();
	lgImgOn.src = lgImgOnFilename;

	lgImgOff = new Image();
	lgImgOff.src = lgImgOffFilename;
}

function textResizerGoSmall()
{
	if (textResizerScriptingOk())
	{
		//default back to CSS fontsize
		document.body.style.fontSize = "";

		//get rid of cookie
		eraseCookie(cookieName);	

		//toggle images
		textResizerSetImage(false);
	}
}

function textResizerGoBig()
{
	if (textResizerScriptingOk())
	{
		document.body.style.fontSize = largeFontSize;
	
		if (readCookie(cookieName) != 'large')
		{
			createCookie(cookieName, 'large', 1);
		}	

		//toggle images
		textResizerSetImage(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;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function textResizerSetImage(useLarge)
{
	gUseLarge = useLarge

	if (textResizerScriptingOk())
	{
		// check the images exist
		if ( smElement == null || lgElement == null	 )
		{
			return;
		}

		if (useLarge)
		{
			lgElement.src = lgImgOn.src;
			smElement.src = smImgOff.src;
		}
		else
		{
			lgElement.src = lgImgOff.src;
			smElement.src = smImgOn.src;
		}
	}
}

function textResizerScriptingOk()
{
	return (document.getElementById);
}

function checkActive() {
	var a = document.getElementsByTagName("a");
	if (window.location.href.substr(location.href.length - 1, 1) == '/') {
		var loc = window.location.href + ''; 
	}
	else {
		var loc = window.location.href;
	}
	for(var i=0; i < a.length; i++) {
		if (a[i].href == loc) {
			a[i].setAttribute("class", "active");
			a[i].setAttribute("className", "active");
		}
	}
}

// add event to window load
addEvent(window, 'load', textResizerInit, false);
addEvent(window, 'load', checkActive, false);

// precache images
textResizerPrecacheImages();