//---------------------------------------------------
// CONFIGURATION
//---------------------------------------------------

var smallFontSize = '90%';
var largeFontSize = '120%';

var cookieName = 'fontsize';
var smElement = 'resizerSmImg';
var mdElement = 'resizerMdImg';
var lgElement = 'resizerLgImg';
var smImgOnFilename = 'images/resizerSmOn.gif';
var smImgOffFilename = 'images/resizerSm.gif';
var mdImgOnFilename = 'images/resizerMdOn.gif';
var mdImgOffFilename = 'images/resizerMd.gif';
var lgImgOnFilename = 'images/resizerLgOn.gif';
var lgImgOffFilename = 'images/resizerLg.gif';

//---------------------------------------------------
// No need to change anything below here
//---------------------------------------------------

var lgImgOn = null;
var lgImgOff = null;
var mdImgOn = null;
var mdImgOff = null;
var smImgOn = null;
var smImgOff = null;

// 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 if (readCookie(cookieName) == 'small') {
		textResizerGoSmall();
	}
	else
	{
		textResizerGoMedium()
	}
}

function textResizerInit() 
{
	// Initialize Scripts - is this a browser that understands DOM?
	if (textResizerScriptingOk())
	{
		// Does the text resizer div exist?
		if ( document.getElementById(smElement) == null || document.getElementById(lgElement) == null	 )
		{
			return;
		}

		// add handlers to anchors
		addEvent( document.getElementById(smElement), 'click', textResizerGoSmall, false);
		addEvent( document.getElementById(mdElement), 'click', textResizerGoMedium, false);
		addEvent( document.getElementById(lgElement), 'click', textResizerGoBig, false);
	}
}

function textResizerPrecacheImages()
{
	smImgOn = new Image();
	smImgOn.src = smImgOnFilename;

	smImgOff = new Image();
	smImgOff.src = smImgOffFilename;

	mdImgOn = new Image();
	mdImgOn.src = mdImgOnFilename;

	mdImgOff = new Image();
	mdImgOff.src = mdImgOffFilename;

	lgImgOn = new Image();
	lgImgOn.src = lgImgOnFilename;

	lgImgOff = new Image();
	lgImgOff.src = lgImgOffFilename;
}

function textResizerGoSmall()
{
	if (textResizerScriptingOk())
	{
		document.body.style.fontSize = smallFontSize;
		//toggle images
		textResizerSetImage(false, false, true);

		if (readCookie(cookieName) != 'small')
		{
			createCookie(cookieName, 'small', 1);
		}
	}
}

function textResizerGoMedium()
{
	if (textResizerScriptingOk())
	{
		//default back to CSS fontsize
		document.body.style.fontSize = "";

		//get rid of cookie
		eraseCookie(cookieName);	

		//toggle images
		textResizerSetImage(false, true, false);
	}
}

function textResizerGoBig()
{
	if (textResizerScriptingOk())
	{
		document.body.style.fontSize = largeFontSize;
		//toggle images
		textResizerSetImage(true, false, false);

		if (readCookie(cookieName) != 'large')
		{
			createCookie(cookieName, 'large', 1);
		}
	}	
}

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, useMedium, useSmall)
{
	if (textResizerScriptingOk())
	{
		var smImg = document.getElementById(smElement);
		var mdImg = document.getElementById(mdElement);
		var lgImg = document.getElementById(lgElement);

		// check the images exist
		if ( smImg == null || lgImg == null	 )
		{
			return;
		}

		if (useLarge)
		{
			lgImg.src = lgImgOn.src;
		}
		else
		{
			lgImg.src = lgImgOff.src;
		}

		if (useMedium)
		{
			mdImg.src = mdImgOn.src;
		}
		else
		{
			mdImg.src = mdImgOff.src;
		}

		if (useSmall)
		{
			smImg.src = smImgOn.src;
		}
		else
		{
			smImg.src = smImgOff.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");
		}
	}
}

function InitializeWindow()
{
	// add event to window load
	textResizerInit();
	addEvent(window, 'load', checkActive, false);

	// precache images
	textResizerPrecacheImages();

	var sCookieValue = readCookie(cookieName);

	detectCookie();
}

function SearchTrigger()
{
	var oSearchField = document.searchForm.elements["Search_Input"];
	var sSearchString = oSearchField.value;
	if (sSearchString.length > 0) {
		document.searchForm.action = "http://search.gov.ab.ca/query.html";
	}
	else {
		document.searchForm.action = "/search/index.asp";
	}
}
