// General purpose navigation tools - popup menus etc

/**** Add event handler to popup menus so they work in IE *****/
function initialisePopupNav() {
	if (document.all&&document.getElementById) {
		var lis = document.getElementsByTagName('li')
		for(i=0; i<lis.length; i++) {
			if(lis[i].parentNode.getAttribute('className')=='navigation') {
				lis[i].onmouseover=function() { this.className+=' over'; }
				lis[i].onmouseout=function() { this.className=this.className.replace(' over', ''); }
			} //if
		} //for
	} //if
} //function
windowonload(initialisePopupNav);
/***** End setup popupnav *****/

/***** Setup panelsets and tabs - resizePanels needs assigned to onload and onresize *****/
function setupTabs(){
	var tabheight= 20;
	var p=document.getElementsByTagName('div');
	for(var i=0; i< p.length; i++) {
		if(p[i].className.indexOf('panel')!=-1 && p[i].className.indexOf('panels')==-1) {
			var tab = document.createElement('span');
			tab.className='tab';
			tab.innerHTML=p[i].getAttribute('title');
			tab.onclick=function() { showPanel(this); }
			tab.onmouseover=function() { this.className+=' tabover'; }
			tab.onmouseout=function() { this.className=this.className.replace(/ tabover/g,''); }
			p[i].parentNode.appendChild(tab);
			//currentpanel.insertBefore(tab, currentpanel.parentNode.firstChild);
		}	// End of if class panel
	}	// End of for panel
}

function resizePanels() {
	var ps=document.getElementsByTagName('div');
	for (var i=0; i<ps.length; i++) {
		if(ps[i].className.indexOf('panels')!=-1) {
			var firstchild=false;
			ps[i].style.width = ps[i].getAttribute("panelwidth") ? (ps[i].getAttribute("panelwidth")+'px') : '100%';
			ps[i].style.height = ps[i].getAttribute("panelheight") ? (eval(ps[i].getAttribute("panelheight"))+20)+'px' : '100%';
			for(var j=0; j<ps[i].childNodes.length;j++) {
				if(ps[i].childNodes[j].className && ps[i].childNodes[j].className.indexOf('panel')!=-1) {
					var p = ps[i].childNodes[j];
					p.style.top=(p.parentNode.lastChild.offsetHeight+5)+'px';
					p.style.height=(p.parentNode.clientHeight-(p.offsetTop+5))+'px';
					p.style.left=5+'px';
					p.style.width=(p.parentNode.clientWidth-10)+'px';
				}
				if(ps[i].childNodes[j].className && ps[i].childNodes[j].className.indexOf('tab')!=-1 && !firstchild) {
					firstchild=ps[i].childNodes[j];
				}
			}
			showPanel(firstchild);
		}
	}
}

function showPanel(tab) {
	var panelset = tab.parentNode;
	for (var i=0; i<panelset.childNodes.length;i++) {
		var nod = panelset.childNodes[i];
		if(nod.nodeType==1 && nod.className.indexOf('panel')!=-1) {
			nod.className=(nod.getAttribute('title')==tab.innerHTML)?'panelactive':'panelinactive';
		}
		if(nod.nodeType==1 && nod.className.indexOf('tab')!=-1) {
			nod.className=(nod.innerHTML==tab.innerHTML)?'tabactive':'tabinactive';
		}
	}
}
/***** End of panel routines *****/	

function setLinkClass(container, url, cssclass, excludeclass) {
	var links=container.getElementsByTagName('a');
	for(var i=0; i<links.length; i++) {
		if(excludeclass.length==0 || links[i].className.indexOf(excludeclass)==-1) {
			if(links[i].href.indexOf(url)!=-1) {
				links[i].className+=' '+cssclass;
			} else {
				links[i].className.replace(new RegExp(cssclass,'gi'), '');
			} // end check url
		} // end check exclude class
	} // end for loop
}
