//Internet Explorer?
isIE = (document.all) ? true:false;

// Function to allow replacement of target="_blank" with XHTML compliant rel="external"
function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}

// Function to allow replacement of target="_blank" with XHTML compliant rel="external" in form tags
function externalLinksForms() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("form");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}

//Function to style abbr tags in IE
function styleAbbr() {
  var oldBodyText, newBodyText, reg
  if (isIE) {
    oldBodyText = document.body.innerHTML;
    reg = /<ABBR([^>]*)>([^<]*)<\/ABBR>/g;
    //newBodyText = oldBodyText.replace(reg, '<ABBR $1><SPAN class=\"abbr\" $1>$2</SPAN></ABBR>');
    //document.body.innerHTML = newBodyText;
    document.body.innerHTML.replace(reg, '<ABBR $1><SPAN class=\"abbr\" $1>$2</SPAN></ABBR>')
  }
}

window.onload = function() {
  externalLinks();
  externalLinksForms();
  styleAbbr();
  //fixHeight();
  TreeToggle();
}

// Date change function for Calendar view of Meetings
function calendarDateChange() {
	document.location='calendar.asp?year=' + calendar.year.options[calendar.year.selectedIndex].value + '&month=' + calendar.month.options[calendar.month.selectedIndex].value;
}

function normalpage() {
	strURL = new String(window.location)
	window.location = strURL.substr(0, strURL.length - 6);
}

function strReplace(str1, str2, str3) {
  while(str1.indexOf(str2) != -1) {
   str1 = str1.replace(str2, str3);
 }
  return str1;
}

function printPage()
{
	if(window.print)
		window.print();
	else
		alert("Sorry, your browser doesn't support this feature.\nPlease use your browser's print button");

	return false;
}


function copyAddress()
{

document.forms['mainform'].c_add_1.value=document.forms['mainform'].add_1.value;
document.forms['mainform'].c_add_2.value=document.forms['mainform'].add_2.value;
document.forms['mainform'].c_add_3.value=document.forms['mainform'].add_3.value;
document.forms['mainform'].c_add_4.value=document.forms['mainform'].add_4.value;
document.forms['mainform'].c_post_code.value=document.forms['mainform'].post_code.value;

}

function fixHeight()
{
	if(document.getElementById)
	{
		var newHeight = 0;

		var left = document.getElementById("left").offsetHeight;
		var centre = document.getElementById("centre").offsetHeight;

		if(left > centre)
			newHeight = left;
		else
			newHeight = centre;

		newHeight = newHeight + "px";

		document.getElementById("left").style.height = newHeight;
		document.getElementById("centre").style.height = newHeight;
	}
	return true;
}

function showLargeTextOptions()
{
	document.write('<span class="sep">|</span>');
	document.write('<span class="textresize text-normal" onclick="document.body.style.fontSize=\'1em\';">A</span> ');
	document.write('<span class="textresize text-large" onclick="document.body.style.fontSize=\'1.2em\'">A</span> ');
	document.write('<span class="textresize text-larger" onclick="document.body.style.fontSize=\'1.4em\';">A</span>')
	document.write('</li><li>');

	return true;
}

function printPageXHTML()
{
	document.write('<span class="sep">|</span><a href="#" onkeypress="printPage(); return false;" onclick="printPage(); return false;">Print friendly</a></li><li>')

	return true;
}

/**************************************/
/* Tree Toggle Control                */
/**************************************/
function TreeToggle()
{
	if(!document.getElementById || !document.getElementById('tree'))
		return false;

	var elemToggleNodes;
	elemToggleNodes = document.getElementById('tree').getElementsByTagName('A');

	for(elemToggle = 0; elemToggle < elemToggleNodes.length; elemToggle++)
	{
		if(elemToggleNodes.item(elemToggle).className.indexOf('toggle') == 0)
		{
			elemToggleNodes.item(elemToggle).removeAttribute('href');
			elemToggleNodes.item(elemToggle).onclick = function()
			{
				var strNodeClass = '';

				if(this.className.indexOf('plus') > 0)
				{
					this.className = 'toggle minus';
					strNodeClass = 'open';
				}
				else if(this.className.indexOf('minus') > 0)
				{
					this.className = 'toggle plus';
					strNodeClass = '';
				}

				if(this.parentNode.nextSibling)
				{
					elemTargetNode = this.parentNode.nextSibling;

					if(elemTargetNode.nodeName == 'UL')
						elemTargetNode.className = strNodeClass;
					else if(elemTargetNode.nextSibling && elemTargetNode.nextSibling.nodeName == 'UL')
						elemTargetNode.nextSibling.className = strNodeClass;
				}
			}
		}
	}
}

/**************************************/
/* Overloaded onload function         */
/**************************************/

function addExternalLoadEvent(func)
{
	var oldonload = window.onload;
	if (typeof window.onload != 'function')
	{
		window.onload = func;
	}
	else
	{
		window.onload = function()
						{
							oldonload();
							func();
						}
	}
}// ends addExternalLoadEvent()

function initialiseFaqs()
{
	var oFaqList = document.getElementById('faqlist');
	if(!oFaqList) return false;

	var oFaqItem;
	var oFaqQuestion;
	var oFaqAnswer;

	for(var iFaqCounter = 0; iFaqCounter < oFaqList.childNodes.length; iFaqCounter++)
	{
		oFaqItem = oFaqList.childNodes.item(iFaqCounter);
		oFaqQuestion = false;
		oFaqAnswer = false;

		for(var iFaqDetailCounter = 0; iFaqDetailCounter < oFaqItem.childNodes.length; iFaqDetailCounter++)
		{
			if(oFaqItem.childNodes.item(iFaqDetailCounter).nodeName == 'H2')
			{
				oFaqQuestion = oFaqItem.childNodes.item(iFaqDetailCounter);
			}
			else if(oFaqItem.childNodes.item(iFaqDetailCounter).nodeName == 'DIV')
			{
				oFaqAnswer = oFaqItem.childNodes.item(iFaqDetailCounter);
			}
		}

		if(oFaqQuestion && oFaqAnswer)
		{
			oFaqQuestion.innerHTML = '<a href="#" onclick="return false;">' + oFaqQuestion.innerHTML + '</a>';
			oFaqQuestion.id = 'faqitem' + iFaqCounter;

			oFaqAnswer.style.display = 'none';
			oFaqAnswer.id = 'faqitem' + iFaqCounter + '_answer';

			oFaqQuestion.onclick = function()
			{
				if (this.className == 'selected')
				{
					this.className = '';
					document.getElementById(this.id + '_answer').style.display = 'none';
				}
				else
				{
					this.className = 'selected';
					document.getElementById(this.id + '_answer').style.display = 'block';
				}

				return false;
			}
		}
	}

	return true;
}


/**
 * Stores the current position of the mouse pointer
 *
 * @author Alex Taylor
 * @created October 2009
 */
var oMousePosition = new function()
{
	this.x = 0;
	this.y = 0;
	this.capture = function(e)
	{
		if(!e)
		{
			var e = window.event;
		}

		if(e.pageX || e.pageY)
		{
			oMousePosition.x = e.pageX;
			oMousePosition.y = e.pageY;
		}
		else if(e.clientX || e.clientY)
		{
			oMousePosition.x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
			oMousePosition.y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
		}
	}
}



/**
 * Functions for displaying and hiding hovering rollover boxes
 *
 * @author Alex Taylor
 * @created June 2010
 */
var arrRolloverBoxes = [];

function displayRolloverBox(szId)
{
	if(!arrRolloverBoxes[szId])
	{
		arrRolloverBoxes[szId] = [];

		if(document.getElementById(szId))
		{
			// Get the element
			var oRolloverElement = document.getElementById(szId);
			oRolloverElement.style.display = 'block';


			// Set the properties
			arrRolloverBoxes[szId]['element'] = oRolloverElement;
			arrRolloverBoxes[szId]['width'] = oRolloverElement.offsetWidth;
			arrRolloverBoxes[szId]['height'] = oRolloverElement.offsetHeight;
			arrRolloverBoxes[szId]['direction'] = '';


			// Set the direction it is pointing
			if(oRolloverElement.className.indexOf('arrowtop') > 0)
			{
				arrRolloverBoxes[szId]['direction'] = 'top';
			}
			else if(oRolloverElement.className.indexOf('arrowright') > 0)
			{
				arrRolloverBoxes[szId]['direction'] = 'right';
			}
			else if(oRolloverElement.className.indexOf('arrowbottom') > 0)
			{
				arrRolloverBoxes[szId]['direction'] = 'bottom';
			}
			else if(oRolloverElement.className.indexOf('arrowleft') > 0)
			{
				arrRolloverBoxes[szId]['direction'] = 'left';
			}
		}
	}

	if(!arrRolloverBoxes[szId]['element'])
	{
		return false;
	}


	// Default position is the current mouse position
	var iMarginLeft = oMousePosition.x;
	var iMarginTop = oMousePosition.y;


	// Adjust according to the direction
	if(arrRolloverBoxes[szId]['direction'] == 'top')
	{
		iMarginLeft = iMarginLeft - (parseInt(arrRolloverBoxes[szId]['width'] / 2) - 10);
		iMarginTop = iMarginTop + 50;
	}
	else if(arrRolloverBoxes[szId]['direction'] == 'right')
	{
		iMarginLeft = iMarginLeft - arrRolloverBoxes[szId]['width'] - 20;
		iMarginTop = iMarginTop - parseInt(arrRolloverBoxes[szId]['height'] / 2);
	}
	else if(arrRolloverBoxes[szId]['direction'] == 'bottom')
	{
		iMarginLeft = iMarginLeft - (parseInt(arrRolloverBoxes[szId]['width'] / 2) - 10);
		iMarginTop = iMarginTop - (arrRolloverBoxes[szId]['height'] + 30);
	}
	else if(arrRolloverBoxes[szId]['direction'] == 'left')
	{
		iMarginLeft = iMarginLeft + 40;
		iMarginTop = iMarginTop - parseInt(arrRolloverBoxes[szId]['height'] / 2);
	}


	// Assign the properties to the element
	arrRolloverBoxes[szId]['element'].style.display = 'block';
	arrRolloverBoxes[szId]['element'].style.marginLeft = iMarginLeft + 'px';
	arrRolloverBoxes[szId]['element'].style.marginTop = iMarginTop + 'px';
}

function hideRolloverBox(szId)
{
	if(!arrRolloverBoxes[szId])
	{
		return false;
	}

	arrRolloverBoxes[szId]['element'].style.display = 'none';
}



/**
 * Set the event that will trigger the capture of the mouse cursor position
 */
document.onmousemove = function(e)
{
	oMousePosition.capture(e);
}