var eLib=new Object();
eLib.getTarget=function(e){ return e&&e.target?e.target:(window.event)?event.srcElement:null;};
eLib.stopPropagation=function(e){ e.stopPropagation?e.stopPropagation():this.cancelBubble=true;};
eLib.preventDefault=function(e){ e.preventDefault?e.preventDefault():this.returnValue=false;};
eLib.addListener=function(el,evt,fn,capture){if(el.addEventListener){ el.addEventListener(evt,fn,capture);return true;}else if(el.attachEvent){ return el.attachEvent('on'+evt,fn);}else { el['on'+evt]=fn;}return true;};

var TokenizedExps={};
function getTokenizedExp(token,flags){var x=TokenizedExps[token];if(!x)x=TokenizedExps[token]=new RegExp('(^|\\s)'+token+'($|\\s)',flags);return x;};
function hasToken(str,token){return getTokenizedExp(token,'').test(str);};

var trimExp=/^\s+|\s+$/g;
String.prototype.trim=function(){return this.replace(trimExp,'');};
var spacesExp=/\s\s+/g;
String.prototype.normalize=function(){return this.trim().replace(spacesExp,' ');};
function removeClass(el,cls){el.className=el.className.replace(getTokenizedExp(cls,'g'),' ').normalize();}

initLinkBlur=function(){var links=document.getElementsByTagName('a');for(var i=0;links[i];i++){eLib.addListener(links[i],'focus',this.linkBlurListener,true);}};
linkBlurListener=function(e){var el=eLib.getTarget(e);if(el.tagName=='A'){el.blur();}else if(el.tagName=='IMG'&&el.parentNode.tagName=='A'){el.parentNode.blur();}return true;};



function tabListener(e) {
	clearCurrentTabPanel()
	setCurrentTabPanel( eLib.getTarget(e).hash.substring(1) );
	eLib.preventDefault(e);
	return false;
}

function getTabPanels() {
	var panels = document.getElementById('TabPanels');
	if( panels != null ) {
		return panels.getElementsByTagName('div');
	}
	return null;
}

function getTargetIdFromURL() {
	return location.hash.substring(1);
}

function getCurrentTabPanel() {
	var panels = getTabPanels();
	for( i = 0; i < panels.length; i++ ) {
		if( panels[i].className == 'panelShow' ) {
			return panels[i];
		}
	}
	return null;
}

function clearCurrentTabPanel() {
	var panel = getCurrentTabPanel();
	if( panel != null ) {
		panel.className = 'panel';
	}
}

function setCurrentTabPanel( id ) {
	clearCurrentTabPanel();
	var panel = document.getElementById( id );
	if( panel != null ) {
		panel.className = 'panelShow';
	}
}

function isTabPanel( el ){
	if( el != null && el.id != '' ) {
		var panels = getTabPanels();
		for( i = 0; i < panels.length; i++ ) {
			if( panels[ i ].id == el.id ) {
				return true;
			}
		}
	}
	return false;
}

function initTabs() {
	var panels = getTabPanels();
	if( panels != null ) {

		for( i = 0; i < panels.length; i++ ) {
			if( panels[i].className == '' ) panels[i].className = 'panel';
		}

		var tabs = document.getElementById('TabPanelList').getElementsByTagName('a');
		for( i = 0; i < tabs.length; i++ ) {
			eLib.addListener(tabs[i],'click',tabListener,true);
		}

		var id = getTargetIdFromURL();
		if( id != '' ) {
			var el = document.getElementById( id );
			if( el != null && isTabPanel( el ) ) {
				el.className = 'panelShow';
			}
		}
		else {
			panels[0].className = 'panelShow';
		}

	}
}

function externalLinks() {
	var els = document.getElementById('Content').getElementsByTagName("a");
	if( els != null) {
		for (var i = 0; i < els.length; i++) {
			if ( els[i].getAttribute("rel") == "external" ) {
				els[i].target = "_blank";
			}
		}
	}
}

eLib.addListener( window, 'load', initTabs, false);
eLib.addListener( window, 'load', initLinkBlur, false);
//eLib.addListener( window, 'load', externalLinks, false);

convertEaddy = function() {
	var els = document.getElementsByTagName("span");
	var re = getTokenizedExp("eaddy");
	for(var i=0,j=els.length; i<j; i++) {
		try {		
			if( re.test(els[i].className) ) {
				addy = els[i].innerHTML;
				if( addy.trim() != "" ) {
					addy = addy.replace( /<[/]?([^> ]+)[^>]*>/g , "" );
					els[i].innerHTML = '<a href="mailto:' + addy + '">' + addy + '</a>';
				}
			}
		}
		catch( err ){
			// ignore
		}
	}
}
eLib.addListener( window, 'load', convertEaddy, false);
