/*
	Tab menu 12/22/07
*/

var bustcache = 1;
var loadstatustext = '<img src="../graphics/loading.gif" /> Loading...';
var loadimg = new Image(16,16);
loadimg.src = '../graphics/loading.gif';

function tabgroup(tabinterfaceid, contentdivid){
	this.tabinterfaceid = tabinterfaceid; //ID of Tab Menu
	this.tabs = document.getElementById(tabinterfaceid).getElementsByTagName('a'); //Get all tab links
	this.contentdivid = contentdivid;
	this.defaultHTML = '';
}

tabgroup.connect = function(pageurl, tabinstance){
	var page_request = false;
	var bustcachevar = '';
	
	if (window.XMLHttpRequest){ // if Mozilla, IE7, Safari etc
		page_request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject){ // if IE6 or below
		try {
		page_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e){
			try{
			page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
	}
	else return false;
	
	var safeurl = pageurl.replace(/^http:\/\/[^\/]+\//i, 'http://'+window.location.hostname+'/');
	page_request.onreadystatechange = function(){tabgroup.loadpage(page_request, tabinstance)}
	if (bustcache) bustcachevar = (safeurl.indexOf('?')!=-1) ? '&'+new Date().getTime() : '?'+new Date().getTime();
	page_request.open('GET', safeurl+bustcachevar, true);
	page_request.send(null);
}

tabgroup.loadpage = function(page_request, tabinstance){
	var divId = tabinstance.contentdivid;
	document.getElementById(divId).innerHTML = loadstatustext;
	if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http")==-1)){
		document.getElementById(divId).innerHTML = page_request.responseText;
	}
}

tabgroup.prototype = {

	expand:function(tabid){ //Select a tab by id
		var tabref = (isNaN(tabid)) ? document.getElementById(tabid) : this.tabs[tabid];
		this.expandtab(tabref);
	},

	getpage:function(pageurl){ //Fetch a page
		tabgroup.connect(pageurl, this);
	},

	expandtab:function(tabref){
		var relvalue = tabref.getAttribute('rel');
		if (relvalue == 'default') document.getElementById(this.contentdivid).innerHTML = this.defaultHTML;
		else tabgroup.connect(tabref.getAttribute('href'), this);
		for (var i=0; i<this.tabs.length; i++){ //Loop thru the tabs, assign class to the selected tab
			this.tabs[i].className = (this.tabs[i].getAttribute('href') == tabref.getAttribute('href')) ? 'selected' : '';
		}
	},

	init:function(){
		this.defaultHTML = document.getElementById(this.contentdivid).innerHTML;
		for (var i=0; i<this.tabs.length; i++){
			this.tabs[i].onfocus = function(){
				this.blur();
			}
			if (this.tabs[i].getAttribute('rel')){
				var tabinstance = this;
				this.tabs[i].onclick = function(){
					tabinstance.expandtab(this);
					return false;
				}
			}
		} 
	}

} 
