// JavaScript Code for GAC Website
// (c) 2001 Nykris Digital Design Ltd.
// Engineer: Graham Bartram

// Browser ID Utilities

var gAgent = window.navigator.userAgent;
var gAgentVers = parseInt(gAgent.charAt(gAgent.indexOf("/")+1),10);

function is_explorer()
	{
	return gAgent.indexOf("MSIE") > 0;
	}
	

// Flash and Image Utilities

// Check whether Flash is installed on the user's computer and create a cookie with the
// result. The cookie has four possible values which tell other routines what to do when
// asked to insert a Flash movie:
// "img" - write out <IMG> tag instead
// "swf" - write out <EMBED> tag and use a Flash movie
// "mov" - write out <EMBED> tag and use a QuickTime movie (QT4 onwards plays Flash)
// "none" - do nothing, <NOSCRIPT> will handle the image in Netscape 2

var gImageHandling = "";

function check_flash()
{
	var nextYear = new Date();
	
	gImageHandling = "none";
		
	if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)
		{
		// Navigator and Explorer ver 5 onwards
		if (navigator.plugins && navigator.plugins["Shockwave Flash"])
			{
			var desc = navigator.plugins["Shockwave Flash"].description;
			var vers = parseInt(desc.charAt(16));
			if (vers >= 3) gImageHandling = "swf";
			}
		}
			
	if (gImageHandling == "none" && navigator.mimeTypes && navigator.mimeTypes["video/quicktime"] && navigator.mimeTypes["video/quicktime"].enabledPlugin)
		{
		// Navigator and Explorer ver 5 onwards
		var instPlugins = navigator.plugins
		for (var i = 0; i < instPlugins.length; i++)
			{
   			if (instPlugins[i].name.indexOf("QuickTime")>=0)
   				{
				var desc = navigator.plugins[i].name;
				var vers = parseInt(desc.charAt(18));
				if (vers >= 2) gImageHandling = "mov";
				i = instPlugins.length;
	   			}
			}
		}
			
	if (gImageHandling == "none" && navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 
	   && (navigator.userAgent.indexOf("Windows")>=0 || navigator.userAgent.indexOf("Win32")>=0))
	{
	   	// Explorer on a 32-bit PC
		document.write('<scr' + 'ipt language=VBSc' + 'ript\> \n');
		document.write('dim Obj\n');
		document.write('gImageHandling = "gif"\n');
		document.write('on error resume next \n');
		document.write('Set Obj = CreateObject("ShockwaveFlash.ShockwaveFlash.4")\n');
		document.write('if IsObject(Obj) = True then gImageHandling = "swf" \n');
		document.write('Set Obj = Null \n');
		document.write('</scr' + 'ipt\> \n');
	}
		
	if (gImageHandling == "none" && !(navigator.appName && navigator.appName.indexOf("Netscape")>=0 && navigator.appVersion.indexOf("2.")>=0))
		{
		// Anything else, other than Navigator ver 2 which will use <NOSCRIPT>
		gImageHandling = "gif";
		}
	
	// Write out cookie
	nextYear.setFullYear(nextYear.getFullYear() + 1);
	document.cookie = "flashHandling=" +  gImageHandling + "; expires=" + nextYear.toGMTString() + "; domain=nykris.com; path=/tna/+/http://www.gac.culture.gov.uk/";

//	document.write('<p>gImageHandling (cookie)=' + gImageHandling + '</p>');
}



function check_flash_nocookie()
{
	gImageHandling = "none";
		
	if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)
		{
		// Navigator and Explorer ver 5 onwards
		if (navigator.plugins && navigator.plugins["Shockwave Flash"])
			{
			var desc = navigator.plugins["Shockwave Flash"].description;
			var vers = parseInt(desc.charAt(16));
			if (vers >= 3) gImageHandling = "swf";
			}
		}
			
	if (gImageHandling == "none" && navigator.mimeTypes && navigator.mimeTypes["video/quicktime"] && navigator.mimeTypes["video/quicktime"].enabledPlugin)
		{
		// Navigator and Explorer ver 5 onwards
		var instPlugins = navigator.plugins
		for (var i = 0; i < instPlugins.length; i++)
			{
   			if (instPlugins[i].name.indexOf("QuickTime")>=0)
   				{
				var desc = navigator.plugins[i].name;
				var vers = parseInt(desc.charAt(18));
				if (vers >= 2) gImageHandling = "mov";
				i = instPlugins.length;
	   			}
			}
		}
			
	if (gImageHandling == "none" && navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 
	   && (navigator.userAgent.indexOf("Windows")>=0 || navigator.userAgent.indexOf("Win32")>=0))
	{
	   	// Explorer on a 32-bit PC
		document.write('<scr' + 'ipt language=VBSc' + 'ript\> \n');
		document.write('dim Obj\n');
		document.write('gImageHandling = "gif"\n');
		document.write('on error resume next \n');
		document.write('Set Obj = CreateObject("ShockwaveFlash.ShockwaveFlash.4")\n');
		document.write('if IsObject(Obj) = True then gImageHandling = "swf" \n');
		document.write('Set Obj = Null \n');
		document.write('</scr' + 'ipt\> \n');
	}
		
	if (gImageHandling == "none" && !(navigator.appName && navigator.appName.indexOf("Netscape")>=0 && navigator.appVersion.indexOf("2.")>=0))
		{
		// Anything else, other than Navigator ver 2 which will use <NOSCRIPT>
		gImageHandling = "gif";
		}
			
//	document.write('<p>gImageHandling (no cookie)=' + gImageHandling + '</p>');
}



// Insert a Flash movie or fallback GIF into the current page depending upon the setting
// of the imageHandling cookie.

function insert_flash(name, width, height, bgCol)
{
	var imageHandling = document.cookie;
	
	if (imageHandling.indexOf("flashHandling") == -1)
		{
		// No cookie exists - ie cookies are off, so do manual check
		check_flash_nocookie();
		imageHandling = gImageHandling
		}
		
	if (imageHandling.indexOf("none") != -1)
		{
		}
	else if (imageHandling.indexOf("swf") != -1)
		{
		document.write('<embed src="' + name + '.swf"');
		document.write(' swLiveConnect=false width=' + width + ' height=' + height);
		document.write(' loop=false quality=high scale=noborder bgcolor=' + bgCol);
		document.write(' type="application/x-shockwave-flash"\>');
		document.write('</embed\>');
		document.write('<noembed\><img src="' + name + '.gif" width=' + width + ' height=' + height + ' border=0 usemap="#' + name + '"\></noembed\>');
		}
	else if (imageHandling.indexOf("mov") != -1)
		{
		document.write('<embed src="' + name + '.mov"');
		document.write(' autoplay="true" controller="false" width="' + width + '" height="' + height + '"');
		document.write(' loop=false bgcolor=' + bgCol);
		document.write(' type="video/quicktime"\>');
		document.write('</embed\>');
		document.write('<noembed\><img src="' + name + '.gif" width=' + width + ' height=' + height + ' border=0 usemap="#' + name + '"\></noembed\>');
		}
	else
		{
		document.write('<img src="' + name + '.gif" width=' + width + ' height=' + height + ' border=0 usemap="#' + name + '"\>');
		} 
	
}



// Insert a random Flash movie or random fallback GIF into the current page depending upon
// the setting of the imageHandling cookie.

function insert_random_flash(imgPath,width,height,bgCol,numImages)
{
	var imageHandling = document.cookie;
	
	if (imageHandling.indexOf("flashHandling") == -1)
		{
		// No cookie exists - ie cookies are off, so do manual check
		check_flash_nocookie();
		imageHandling = gImageHandling
		}
		
	imgNum = (Math.floor((new Date()).getTime()/10)%numImages) + 1;
	imgNumStr = (new Number(imgNum)).toString();
	if (imgNum < 10) imgNumStr = '0' + imgNumStr;

	if (imageHandling.indexOf("none") != -1)
		{
		}
	else if (imageHandling.indexOf("swf") != -1)
		{
		document.write('<embed src="' + imgPath + imgNumStr + '.swf"');
		document.write(' swLiveConnect=false width=' + width + ' height=' + height);
		document.write(' loop=false quality=high scale=noborder bgcolor=' + bgCol);
		document.write(' type="application/x-shockwave-flash"\>');
		document.write('</embed\>');
		document.write('<noembed\><img src="' + imgPath + imgNumStr + '.gif" width=' + width + ' height=' + height + ' border=0 usemap="#' + name + '"\></noembed\>');
		}
	else if (imageHandling.indexOf("mov") != -1)
		{
		document.write('<embed src="' + imgPath + imgNumStr + '.mov"');
		document.write(' autoplay="true" controller="false" width="' + width + '" height="' + height + '"');
		document.write(' loop=false bgcolor=' + bgCol);
		document.write(' type="video/quicktime"\>');
		document.write('</embed\>');
		document.write('<noembed\><img src="' + imgPath + imgNumStr + '.gif" width=' + width + ' height=' + height + ' border=0 usemap="#' + name + '"\></noembed\>');
		}
	else
		{
		document.write('<img src="' + imgPath + imgNumStr + '.gif" width=' + width + ' height=' + height + ' border=0 usemap="#' + name + '"\>');
		} 
	
}




// Insert a random GIF image into the current page depending upon the setting of the
// imageHandling cookie.

function insert_random_image(imgType,imgPath,imgWidth,imgHeight,imgHspace,imgVspace,numImages)
{
	var imgNum,imgNumStr="";
	var imageHandling = document.cookie;
	
	if (imageHandling.indexOf("flashHandling") == -1)
		{
		// No cookie exists - ie cookies are off, so do manual check
		check_flash_nocookie();
		imageHandling = gImageHandling
		}
		
	if (imageHandling.indexOf("none") == -1)
		{
		imgNum = (Math.floor((new Date()).getTime()/10)%numImages) + 1;
		imgNumStr = (new Number(imgNum)).toString();
		if (imgNum < 10) imgNumStr = '0' + imgNumStr;
		document.write('<img src="' + imgPath + imgNumStr + '.' + imgType + '" width=' + imgWidth + ' height=' + imgHeight + ' vspace=' + imgVspace + ' hspace=' + imgHspace + '\>');
		}

}


// Rollover Utilities


var gRollovers = new Object();
var gRolloversPath = "";

	
	
function find_element(name,layer)
{	
	if (gAgentVers < 4) return document[name];
	var currentLayer = layer ? layer.document : document;
	var element = currentLayer[name];
	if (!element)
		{
		for (var i=0;i<currentLayer.layers.length;i++)
			{
			element = find_element(name,currentLayer.layers[i]);
			if (element) return element;
			}
		}
	return element;
}



function set_rollovers_path(path)
{
	gRolloversPath = path;
	// document.write('<p>gRolloversPath=' + gRolloversPath + '</p>');
}



function load_rollover(button)
{
	if (document.images)
		{
		gRollovers[button] = new Object();
		gRollovers[button][0] = new Image();
		gRollovers[button][0].src = gRolloversPath + button + '_norm.gif';
		gRollovers[button][1] = new Image();
		gRollovers[button][1].src = gRolloversPath + button + '_over.gif';
		}
}



function load_all_rollovers()
{
	if (document.images)
		{
		var numImages = document.images.length;
		for (var i=0;i<numImages;i++)
			{
			if (document.images[i].name) load_rollover(document.images[i].name);
			}
		}
}



function rollover(button,state)
{
	if (document.images)
	{
		if (gRollovers[button])
		{
			var img = (!is_explorer()) ? find_element(button,0) : document[button];
			if (img) img.src = gRollovers[button][state].src;
			return true;
		}
	}
	return false;
}

	
	
	

