/*
	Contents:
		- misc functions to be called by init
		- init() function
		- addEvent
*/

// tab rotator, called from init() below (line 83)
function tabInit() {
	
	var container 	= document.getElementById('rotator_container'),
		tabs 		= document.getElementById('rotator_pagination').getElementsByTagName('a'),
		panels		= getElementsByClass('panel',container,'div'),
		panelslen	= panels.length,
		tabslen		= tabs.length,
		currentlink = 0,
		autoChangePanel;
	
	// bind click event to tabs
	var t = tabslen;
	while(t--) {		
		tabs[t].onclick = function() {			
			window.clearInterval(autoChangePanel);			
			setCurrentPanel(this);	
			return false;
		};
	}
	
	// activate the first one
	setCurrentPanel(0);
	
	// init auto rotate
	autoChangePanel = self.setInterval(function(){
							currentlink = currentlink+1 == panelslen ? 0 : currentlink + 1;	
							setCurrentPanel(currentlink);						
						}, 10000);
	
	// set current panel based on index or item
	function setCurrentPanel(panel) {		
		// hide all
		var p2 = panelslen;
		while(p2--) { panels[p2].style.display = "none"; }			
		// unset active on all
		var t2 = tabslen;
		while(t2--) { tabs[t2].className = ""; }

		// show this panel and set tab as active
		var tab = typeof panel == "object" ? panel : tabs[panel],
			id = tab.href.split("#")[1];
		document.getElementById(id).style.display = "block";
		tab.className = "on";		
	}	
}

// @getElementsByClass
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}
// end getElementsByClass

// the big init()
function init() {
	if (arguments.callee.done) return;
	arguments.callee.done = true;
	if (_timer) clearInterval(_timer);
	
	if (document.getElementsByTagName&&document.getElementById) {
		if (document.getElementById("rotator_container")) {
			tabInit();
		}
	}	
};
// end init()


/* Dean Edwards window.onload */
/* for Mozilla */
if (document.addEventListener) {
   document.addEventListener("DOMContentLoaded", init, false);
}

// for Internet Explorer (using conditional comments)
/*@cc_on @*/
/*@if (@_win32)
document.write("<scr" + "ipt 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 @*/

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;

