// JavaScript Document

<!-- hide script from old browsers

function hideDiv(n)
{ 
	if (document.getElementById)
	{ // DOM3 = IE5, NS6 
		//document.getElementById('hideshow').style.visibility = 'hidden'; 
		document.getElementById(n).style.visibility = 'hidden'; 
	} 
	/*else
	{ 
		if (document.layers)
		{ // Netscape 4 
			document.hideshow.visibility = n; 
		} 
		else
		{ // IE 4 
			document.all.hideshow.style.visibility = n; 
		} 
	} */
}

function showDiv(n)
{ 
	if (document.getElementById)
	{ // DOM3 = IE5, NS6 
		document.getElementById(n).style.visibility = 'visible'; 
	} 
	/*else
	{ 
		if (document.layers)
		{ // Netscape 4 
			document.hideshow.visibility = 'visible'; 
		} 
		else
		{ // IE 4 
			document.all.hideshow.style.visibility = 'visible'; 
		} 
	} */
} 

// end hiding script from old browsers -->



pde=
{
	// CSS classes
	pdeClass:'pde',
	hideClass:'hide',
	showClass:'show',
	parentClass:'parent',
	currentClass:'current',
	// images added to the parent links
	openImage:'http://broadland-it.co.uk/images/minus.png',
	closedImage:'http://broadland-it.co.uk/images/plus.png',
	selectedImage:'http://broadland-it.co.uk/images/1.gif',
	openMessage:'Close section',
	closedMessage:'Open section',
  // boolean to keep the section with the STRONG open or not.
  keepCurrentOpen:true,
	// boolean to make the parent link collapse the section or not 
	linkParent:false,
	init:function()
	{
		pde.createClone();
		if(!document.getElementById || !document.createTextNode){return;}
		var uls=document.getElementsByTagName('ul');
		for(var i=0; i<uls.length; i++)
		{
		  var inneruls,parentLI;
			if(!pde.cssjs('check',uls[i],pde.pdeClass)){continue;}
			inneruls=uls[i].getElementsByTagName('ul');
			var lis=uls[i].getElementsByTagName('li');
			for(var j=0; j<inneruls.length; j++)
			{
				parentLI=inneruls[j].parentNode;
				if(parentLI.getElementsByTagName('strong')[0])
				{
					pde.cssjs('add',parentLI,pde.currentClass);
					if(pde.keepCurrentOpen === true){continue;}
				}
				pde.cssjs('add',parentLI,pde.parentClass);
				parentLI.insertBefore(pde.clone.cloneNode(true),parentLI.firstChild);
				pde.cssjs('add',inneruls[j],pde.hideClass);
				pde.addEvent(parentLI.getElementsByTagName('a')[0],'click',pde.showhide,false);
				parentLI.getElementsByTagName('a')[0].onclick=function(){return false;} // Safari hack
				if(pde.linkParent)
				{
					pde.addEvent(parentLI.getElementsByTagName('a')[1],'click',pde.showhide,false);
					parentLI.getElementsByTagName('a')[1].onclick=function(){return false;} // Safari hack
				}
			}
		}
	},
	showhide:function(e)
	{
		var image,message;
		var elm=pde.getTarget(e);
		var ul=elm.parentNode.getElementsByTagName('ul')[0];
		var img=elm.parentNode.getElementsByTagName('img')[0];
		if(pde.cssjs('check',ul,pde.hideClass))
		{
			message=pde.openMessage;
			image=pde.openImage;
			pde.cssjs('remove',elm.parentNode.getElementsByTagName('ul')[0],pde.hideClass);
			pde.cssjs('add',elm.parentNode.getElementsByTagName('ul')[0],pde.showClass);
		}
		else
		{
			message=pde.closedMessage;
			image=pde.closedImage;
			pde.cssjs('remove',elm.parentNode.getElementsByTagName('ul')[0],pde.showClass);
			pde.cssjs('add',elm.parentNode.getElementsByTagName('ul')[0],pde.hideClass);
		}
		img.setAttribute('src',image);
		img.setAttribute('alt',message);
		img.setAttribute('title',message);
		pde.cancelClick(e);
	},
	createClone:function()
	{
		pde.clone=document.createElement('a');
		pde.clone.setAttribute('href','#');
		pde.clone.appendChild(document.createElement('img'));
		pde.clone.getElementsByTagName('img')[0].src=pde.closedImage;
		pde.clone.getElementsByTagName('img')[0].alt=pde.closedMessage;
		pde.clone.getElementsByTagName('img')[0].title=pde.closedMessage;
	},
/* helper methods */
	getTarget:function(e)
	{
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target){return false;}
		if (target.nodeName.toLowerCase() != 'a'){target = target.parentNode;}
		return target;
	},
	cancelClick:function(e)
	{
		if (window.event){
			window.event.cancelBubble = true;
			window.event.returnValue = false;
			return;
		}
		if (e){
			e.stopPropagation();
			e.preventDefault();
		}
	},
	addEvent: function(elm, evType, fn, useCapture)
	{
		if (elm.addEventListener) 
		{
			elm.addEventListener(evType, fn, useCapture);
			return true;
		}
		else if (elm.attachEvent)
		{
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		}
		else
		{
			elm['on' + evType] = fn;
		}
	},
	cssjs:function(a,o,c1,c2)
	{
		switch (a)
		{
			case 'swap':
				o.className=!pde.cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
			break;
			case 'add':
				if(!pde.cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
			break;
			case 'remove':
				var rep=o.className.match(' '+c1)?' '+c1:c1;
				o.className=o.className.replace(rep,'');
			break;
			case 'check':
				return new RegExp("(^|\s)" + c1 + "(\s|$)").test(o.className)
			break;
		}
	}
}
//pde.addEvent(window, 'load', pde.init, false);

function init() {
  // quit if this function has already been called
  if (arguments.callee.done) return;

  // flag this function so we don't do the same thing twice
  arguments.callee.done = true;
	
	// kill the timer
  if (_timer) clearInterval(_timer);

  pde.init();
};

/* for Mozilla/Opera9 */
if (document.addEventListener)
{
  document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
  document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
  var script = document.getElementById("__ie_onload");
  script.onreadystatechange = function() {
    if (this.readyState == "complete") {
      init(); // call the onload handler
    }
  };
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) // sniff
{
  var _timer = setInterval(function()
	{
		if (/loaded|complete/.test(document.readyState))
		{
			init(); // call the onload handler
		}
  }, 10);
}

/* for other browsers */
window.onload = init;

