//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();
  initializeMenu();
}

// 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.\n" +
                      "Please use your browser's print button");
        }
}

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;
}

//**************************************************************
// This function clears a given text box if it contains specific
// text. This is useful for search or username boxes where if
// the user places the cursor in the box, text such as
// 'search...' or 'username...' should disappear, but not text
// that the user has typed
//
// Usage : <input type="text" value="search..." onfocus="clearSingleLineEditText(this, 'search...');" />
//**************************************************************
function clearSingleLineEditText(theSingleLineEdit, textToClear)
{
	if (theSingleLineEdit.value == textToClear)
	{
		theSingleLineEdit.value = '';
	}
}

/**************************************/
/* 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()

/**************************************/
/* 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;
				}
			}
		}
	}
}


/**************************************/
/* Camberley Theatre Menu */
/**************************************/
function initializeMenu()
{
	if(!document.getElementById || !document.getElementById('ct-topmenu'))
	{
		return false;
	}

	var oMenuElements = document.getElementById('ct-topmenu').getElementsByTagName('LI');

	for(var iMenuCount = 0; iMenuCount < oMenuElements.length; iMenuCount++)
	{
		oMenuElements.item(iMenuCount).onmouseover = function()
		{
			// Display all the child elements
			oChildElements = this.getElementsByTagName('UL');

			for(var iChildCount = 0; iChildCount < oChildElements.length; iChildCount++)
			{
				oChildElements.item(iChildCount).style.display = 'block';
				oChildElements.item(iChildCount).style.width = this.offsetWidth + 'px';
			}


			// Display the parent element
			oParentElement = this.parentNode;

			while(oParentElement.nodeName != 'UL')
			{
				oParentElement = oParentElement.parentNode;
			}

			oParentElement.style.display = 'block';


			// Apply a selected class to the anchor
			oAnchorElement = oParentElement.previousSibling;

			while(oAnchorElement && oAnchorElement.nodeName != 'A')
			{
				oAnchorElement = oAnchorElement.previousSibling;
			}

			if(oAnchorElement && oAnchorElement.className.indexOf('selected-hover') < 0)
			{
				oAnchorElement.className = oAnchorElement.className + ' selected-hover';
			}
		}

		oMenuElements.item(iMenuCount).onmouseout = function()
		{
			if(this.className.indexOf('menu') == 0)
			{
				// Hide all the child elements
				oChildElements = this.getElementsByTagName('UL');

				for(var iChildCount = 0; iChildCount < oChildElements.length; iChildCount++)
				{
					oChildElements.item(iChildCount).style.display = 'none';
				}
			}

			if(this.className.indexOf('menu') < 0)
			{
				// Hide the parent element
				oParentElement = this.parentNode;

				while(oParentElement.nodeName != 'UL')
				{
					oParentElement = oParentElement.parentNode;
				}

				oParentElement.style.display = 'none';


				// Remove the selected class from the anchor
				oAnchorElement = oParentElement.previousSibling;

				while(oAnchorElement && oAnchorElement.nodeName != 'A')
				{
					oAnchorElement = oAnchorElement.previousSibling;
				}

				if(oAnchorElement && oAnchorElement.className.indexOf('selected-hover') >= 0)
				{
					oAnchorElement.className = oAnchorElement.className.replace('selected-hover', '');
				}
			}
		}
	}
}