String.prototype.startsWith = function(s) {return (s==null)? false : (this.substring(0, s.length)==s);}
String.prototype.endsWith = function(s) {return (s==null)? false : (this.substr(this.length-s.length,s.length)==s);}

/* standards based external links */
externalLinks = function() {
	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 tabEvents(){
	var tabs = document.getElementById('tabs');
	if(!tabs)return;
	var lis = tabs.getElementsByTagName('li');
	for(i=0;i < lis.length;i++){
		var li = lis[i];
		li.onclick=function(){switchTab(this.id.replace('-switch',''));return false;}
	}
}

function switchTab(id){
	//tabs
	var tabs = document.getElementById('tabs');
	var lis = tabs.getElementsByTagName('li');
	for(i=0;i < lis.length;i++){
		var li = lis[i];
		li.className = li.className.replace('active','');
	}
	var li = document.getElementById(id+'-switch');
	li.className = li.className+' active';
	//content
	var c = document.getElementsByClassName('tabs');
	for(i=0;i < c.length;i++){
		c[i].style.display='none';
	}
	document.getElementById(id+'-content').style.display='block';
}

document.getElementsByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
}; 

/* init & load */
window.oninit = function() {
	if (document.getElementById && document.getElementsByTagName) {
		externalLinks();
		tabEvents();
	}
}
launchInit = function() {
	if (document.getElementsByTagName && typeof(window.oninit)=='function') {
		if (document.getElementsByTagName('body').length>0) window.oninit();
		else setTimeout('launchInit()',30);
	}
}
launchInit();