// JavaScript Document
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function CheckHeight()
{
var t = document.getElementById('backtotop');
	if (document.body.scrollHeight > document.body.clientHeight)		
		t.style.visibility="visible"; // ns and ie
	else
		t.style.visibility="hidden";
}

function NavUpdate(f)
{
var navto = f.options[f.selectedIndex].value;

	if (navto.substring(40,14) == "javascript")
		OpenCalc();
	else	
		location.href = f.options[f.selectedIndex].value;
}


function GetSelected(f)
{
	return f.options[f.selectedIndex].value;
}


function Snap()
{
	// Function to snap layers into the right place after a resize etc
	var x, y, ox, bx, oy, p, tx, a, b, k, d, da, e, el, args = Snap.arguments;
	a = parseInt(a);
	for (k = 0; k < (args.length-3); k += 4)
	if ((g = MM_findObj(args[k])) != null)
	{
		el = eval(MM_findObj(args[k + 1]));
		a = parseInt(args[k + 2]);
		b = parseInt(args[k + 3]);
		x = 0;
		y = 0;
		ox = 0;
		oy = 0;
		p = "";
		tx = 1;
		da = "document.all['" + args[k] + "']";
		if(document.getElementById)
		{
			d = "document.getElementsByName('" + args[k] + "')[0]";
			if (!eval(d))
			{
				d = "document.getElementById('" + args[k] + "')";
				if(!eval(d))
				{
					d = da;
				}
			}
		}
		else if (document.all)
		{
			d = da;
		} 
		if (document.all || document.getElementById)
		{
			while (tx == 1)
			{
				p += ".offsetParent";
				if (eval(d + p))
				{
					x += parseInt(eval(d + p + ".offsetLeft"));
					y += parseInt(eval(d + p + ".offsetTop"));
				}
				else
				{
					tx = 0;
				}
			}
     		ox = parseInt(g.offsetLeft);
     		oy = parseInt(g.offsetTop);
     		var tw = x + ox + y + oy;
     		if (tw == 0 || (navigator.appVersion.indexOf("MSIE 4") > -1 && navigator.appVersion.indexOf("Mac") > -1))
     		{
				if (!suckybrowser && (navigator.appVersion.indexOf("MSIE 4") > -1 && navigator.appVersion.indexOf("Mac") > -1))
				{
					/* Fix: We shouldnt be supporting this crap */
					suckybrowser = true;
					alert("Your browser is incompatible with this website and many others and no longer supported by either Apple or Microsoft. Please consider Firefox 4 or Safari for Mac instead.");
					return;
				}
				else
				{
					ox = 0;
					oy = 0;
					if (g.style.left)
					{
						x = parseInt(g.style.left);
						y = parseInt(g.style.top);
		      		}
		      		else
		      		{
		      			var w1 = parseInt(el.style.width);
		      			bx = (a < 0) ? -5-w1 : -10;
						a = (Math.abs(a) < 1000) ? 0 : a;
						b = (Math.abs(b) < 1000) ? 0 : b;
						x = document.body.scrollLeft + event.clientX + bx;
						y = document.body.scrollTop + event.clientY;
		      		}
				}
	     	}
		}
		else if (document.layers)
		{
			x = g.x;
			y = g.y;
			var q0 = document.layers, dd = "";
			for (var s = 0; s < q0.length; s++)
			{
				dd = 'document.' + q0[s].name;
				if (eval(dd + '.document.' + args[k]))
				{
					x += eval(dd + '.left');
					y += eval(dd + '.top');
					break;
				}
			}
		}
		if (el)
		{
			e = (document.layers) ? el : el.style;
			var xx = parseInt(x + ox + a), yy = parseInt(y + oy + b);
			
			/* XXX: FIX FOR IE9 BY CraigE. First, detect if we are using IE >= 9. If we are, 'px' needs appending
			 * to the offsets in the same way as all other browsers as IE9 is more standards compliant.
			 */
			if (navigator.appVersion.indexOf("MSIE ") > -1)
			{
				var ieversion = navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE ") + 5, navigator.appVersion.length);
				ieversion = ieversion.substring(0, ieversion.indexOf(";"));
				ieversion = parseInt(ieversion);
			}
		
			if ((navigator.appName == "Netscape" && parseInt(navigator.appVersion) > 4) || ieversion >= 9)
			{
				xx += "px";
				yy += "px";
			}
			if (navigator.appVersion.indexOf("MSIE 5") > -1 && navigator.appVersion.indexOf("Mac") >- 1)
			{
				if (!suckybrowser)
				{
					/* Fix: We shouldnt be supporting this crap */
					suckybrowser = true;
					alert("Your browser is incompatible with this website and many others and no longer supported by either Apple or Microsoft. Please consider Firefox 4 or Safari for Mac instead.");
					return;
				}
			}
			e.left=xx;
			e.top=yy;
		}
	}
}


function LargerImage(img)
{

	win = window.open(img,"LargerImage","width=618,height=435,scrollbars=false");

}

var visibleclick = "";

function showmenu(div)
{
	var m = document.getElementById(div);
	ypos=20;
	if (m != null)
	{
		var link = div.replace("menu", "link");
		Snap(link,div,0,ypos);
		m.style.display = "block";
	}
	
	blurall();
	
	m = document.getElementById(visibleclick);
	if (m != null)
		m.style.display = 'none';

}

function hidemenu(div)
{
	var m = document.getElementById(div);
	if (m != null)
		m.style.display = "none";
	
	blurall();
	
	m = document.getElementById(visibleclick);
	if (m != null)
		m.style.display = 'block';

}
//
// XML import function
// template: path of xml template including url params
// processFunction: handler function

function ImportXML(templatepath, processFunction)
{

	if (document.implementation && document.implementation.createDocument)
		{	
			xmlDoc = document.implementation.createDocument("", "", null);
			xmlDoc.onload = processFunction;
		}
	else if (window.ActiveXObject)
		{
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.onreadystatechange = function () 
				{				
				if (xmlDoc.readyState == 4) 
				  processFunction();
				}
		}
	else
		{
			alert('Your browser can\'t handle this script');
			return;
		}
	// passes category to template
//	alert(templatepath);
	xmlDoc.load(templatepath);

}

function playvideo(id, index)
{
	var width  = 400;
	var height = 340;
	var left   = (screen.width  - width)/2;
	var top    = (screen.height - height)/2;
	var params = 'width='+width+', height='+height;
	params += ', top='+top+', left='+left;
	params += ', directories=no';
	params += ', location=no';
	params += ', menubar=no';
	params += ', resizable=no';
	params += ', scrollbars=no';
	params += ', status=no';
	params += ', toolbar=no';
	window.open('/templates/video/player.cfm?page=' + id + '&index=' + index, 'myWindow', params);
}

