function addLoadListener(fn)
{
	if (typeof window.addEventListener != 'undefined')
	{
		window.addEventListener('load', fn, false);
	}
	else if (typeof document.addEventListener != 'undefined')
	{
		document.addEventListener('load', fn, false);
	}
	else if (typeof window.attachEvent != 'undefined')
	{
		window.attachEvent('onload', fn);
	}
	else
	{
		return false;
	}
	return true;
};

function attachEventListener(target, eventType, functionRef, capture)
{
    if (typeof target.addEventListener != "undefined")
    {
        target.addEventListener(eventType, functionRef, capture);
    }
    else if (typeof target.attachEvent != "undefined")
    {
        target.attachEvent("on" + eventType, functionRef);
    }
    else
    {
        return false;
    }

    return true;
};

function checkBrowserWidth()
{
	var changed = false;
	var theWidth = getBrowserWidth();
	if (theWidth == 0)
	{
		var resolutionCookie = document.cookie.match(/(^|;)gsjbwres[^;]*(;|$)/);
		if (resolutionCookie != null)
		{
			changed = setStylesheet("fonts-" + unescape(resolutionCookie[0].split("=")[1]));
		}
		addLoadListener(checkBrowserWidth);
		return false;
	}
	if (theWidth > 975)
	{
	    disableStylesheet("fonts-800");
	    changed = enableStylesheet("fonts-default");
		document.cookie = "gsjbwres=" + escape("default");
	}
	else
	{
	    disableStylesheet("fonts-default");
	    changed = enableStylesheet("fonts-800");
		document.cookie = "gsjbwres=" + escape("800");
	}
	if (changed)
	{
	    /* re-run banner selection whenever stylesheet changes */
	    bpSelectRandomImage();
	}
	return true;
};

function getBrowserWidth()
{
	if (window.innerWidth)
	{
		return window.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientWidth != 0)
	{
		return document.documentElement.clientWidth;
	}
	else if (document.body)
	{
		return document.body.clientWidth;
	}
	return 0;
};

function enableStylesheet(styleTitle)
{
	var currTag;
	if (document.getElementsByTagName)
	{
		for (var i = 0; (currTag = document.getElementsByTagName("link")[i]); i++)
		{
			if (currTag.getAttribute("rel").indexOf("style") != -1 && currTag.getAttribute("title"))
			{
				if(currTag.getAttribute("title") == styleTitle)
				{
				    if (currTag.disabled)
				    {
					    currTag.disabled = false;
					    return true;
			        }
				}
			}
		}
	}
	return false;
}

function disableStylesheet(styleTitle)
{
	var currTag;
	if (document.getElementsByTagName)
	{
		for (var i = 0; (currTag = document.getElementsByTagName("link")[i]); i++)
		{
			if (currTag.getAttribute("rel").indexOf("style") != -1 && currTag.getAttribute("title"))
			{
				if(currTag.getAttribute("title") == styleTitle)
				{
				    if (!currTag.disabled)
				    {
					    currTag.disabled = true;
					    return true;
					}
				}
			}
		}
	}
	return false;
}

function initRollovers() {
	if (!document.getElementById) return
	
	var aPreLoad = new Array();
	var sTempSrc;
	var aImages = document.getElementsByTagName('img');

	for (var i = 0; i < aImages.length; i++) {		
		if (aImages[i].className == 'imgover') {
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_o'+ftype);

			aImages[i].setAttribute('hsrc', hsrc);
			
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			
			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}	
			
			aImages[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_o'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}
		}
	}
}

/* strapline randomization (in here because it needs to run on re-size again) */

var bpImages800 = [
    'Images/V1/800-home-01.gif',
    'Images/V1/800-home-02.gif',
    'Images/V1/800-home-03.gif',
    'Images/V1/800-home-04.gif',
    'Images/V1/800-home-05.gif',
    'Images/V1/800-home-08.gif',
    'Images/V1/800-home-11.gif',
    'Images/V1/800-home-14.gif'
];

var bpImages1024 = [
    'Images/V1/1024-home-01.gif',
    'Images/V1/1024-home-02.gif',
    'Images/V1/1024-home-03.gif',
    'Images/V1/1024-home-04.gif',
    'Images/V1/1024-home-05.gif',
    'Images/V1/1024-home-08.gif',
    'Images/V1/1024-home-11.gif',
    'Images/V1/1024-home-14.gif'
];

var bpImageCache800 = {};
var bpImageCache1024 = {};

function bpPreloadImages(applicationPath)
{
    var i = 0;
    for (i = 0; i < bpImages800.length; i++)
    {
        bpImageCache800[i] = new Image();
        bpImageCache800[i].src = applicationPath + bpImages800[i];
    }
    for (i = 0; i < bpImages1024.length; i++)
    {
        bpImageCache1024[i] = new Image();
        bpImageCache1024[i].src = applicationPath + bpImages1024[i];
    }
}

function bpSelectRandomImage()
{
    var idx = Math.round(Math.random() * (bpImages800.length - 1));
    var browserWidth = getBrowserWidth();
    var img = null;
    var imageWidth = 0;
    if (browserWidth > 975)
    {
        img = bpImageCache1024[idx];
        imageWidth = 620;
    }
    else
    {
        img = bpImageCache800[idx];
        imageWidth = 421;
    }
    var obj = document.getElementById('home-strapline');
    if (obj)
    {
        obj.innerHTML = '<img src="' + img.src + '" width="' + imageWidth + '" height="165" alt="" name="strapline" />';
    }
}

/* end strapline randomization */

checkBrowserWidth();
addLoadListener(initRollovers);
attachEventListener(window, "resize", checkBrowserWidth, false);
