function inittabbedcontainers(){
	var divs=document.getElementsByTagName("div");
	for(var i=0;i<divs.length;i++){
		if(divs[i].id.indexOf("tabbed")!=-1){
			var tabbedId=divs[i].id.substring(6);
			try {
			    var activeTab=getNumFromCookie(tabbedId);
			    if(isForceOpen(tabbedId) && getNumFromForceOpen(tabbedId)!=null){
				    activeTab=getNumFromForceOpen(tabbedId);
			    }
			    hideAllTabs(tabbedId);
			    showTab(tabbedId,activeTab);
			} catch(e) {
			    try {
				showTab(tabbedId, 1);
			    } catch(ee) {}
			}
		}
	}
}

function findTabbed(id){
	return document.getElementById("tabbed"+id);
}

function findSelectorDiv(id,num){
	return document.getElementById("tab_"+id+"_"+num);
}

function findContentDiv(id,num){
	return document.getElementById("contenttab_"+id+"_"+num);
}

function getSelectorName(id,num){
	return findSelectorDiv(id,num).getElementsByTagName("span")[0].innerHTML;
}

function hideTab(id,num){
	var contentDiv=findContentDiv(id,num);
	contentDiv.style.display="none";
	var selectorDiv=findSelectorDiv(id,num);
	if(num==1){
		selectorDiv.className="Tab_1_off";
	}else if(num==getNumberOfTabsForTabbed(id)){
		selectorDiv.className="Tab_3_off";
	}else{
		selectorDiv.className="Tab_2_off";
	}
}

function hideAllTabs(id){
	var tabbedSize=getNumberOfTabsForTabbed(id);
	for(var i=1;i<=tabbedSize;i++){
		hideTab(id,i);
	}
}

function showTab(id,num){
	var contentDiv=findContentDiv(id,num);
	contentDiv.style.display="block";
	var selectorDiv=findSelectorDiv(id,num);
	if(num==1){
		selectorDiv.className="Tab_1_on";
	}else if(num==getNumberOfTabsForTabbed(id)){
		selectorDiv.className="Tab_3_on";
	}else{
		selectorDiv.className="Tab_2_on";
	}
	writeCookie(id,num);
}

function getNumberOfTabsForTabbed(id){
	var actNum=0;
	var tabbedSpans=findTabbed(id).getElementsByTagName("span");
	for(var i=0;i<tabbedSpans.length;i++){
		if(tabbedSpans[i].className=="TabsContainer"){
			var childDivs=tabbedSpans[i].getElementsByTagName("div");
			for(var j=0;j<childDivs.length;j++){
				if(childDivs[j].parentNode==tabbedSpans[i]){
					actNum++;
				}
			}
		}
	}
	return actNum;
}

function clicked(id,num){
	hideAllTabs(id);
	showTab(id,num);
}

function writeCookie(id,num){
	var schemeLength = window.location.href.indexOf('://') + 3;
	var domainLength = window.location.href.substring(schemeLength).indexOf('/');
	var queryStart   = window.location.href.indexOf('?');
	
	var cookiePath   = '';
	if(queryStart > -1) {
	    cookiePath   = window.location.href.substring(schemeLength + domainLength, queryStart);
	} else {
	    cookiePath   = window.location.href.substring(schemeLength + domainLength);
	}
	
	if(isIE) {
	    cookiePath   = cookiePath.substring(0, cookiePath.lastIndexOf('/'));
	}
	
	document.cookie = 'tabid:' + id + '=' + num + '; path=' + cookiePath;
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return 1;
}

function getNumFromCookie(id){
	if(readCookie("tabid:"+id)!=null){
		return readCookie("tabid:"+id);
	}else{
		return 1;
	}
}

function isForceOpen(id){
	if(findTabbed(id).getElementsByTagName("input").length>0) return true;
	return false;
}

function getForceOpen(id){
	if(isForceOpen){
		return findTabbed(id).getElementsByTagName("input")[0].getAttribute("value");
	}else{
		return null;
	}
}

function getNumFromForceOpen(id){
	if(isForceOpen(id)==false) return null;
	for(var i=1;i<=getNumberOfTabsForTabbed(id);i++){
		if(getSelectorName(id,i).indexOf(getForceOpen(id))==0){
			return i;
		}
	}
	return null;
}

function getAllTabbedNodes() {
	var nodeArr=new Array();
	
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') 
			c = c.substring(1,c.length);
		if (c.indexOf("tabid") == 0) {
			var tabbed = findTabbed(c.substring("tabid".length+1,c.indexOf("=")))
			if(tabbed!=null)
				nodeArr.push(tabbed);
		}
	}
	
	if(nodeArr.length==0) {
		var divs=document.getElementsByTagName("div");
		for(var i=0;i<divs.length;i++){
			if(divs[i].id.indexOf("tabbed")!=-1){
				nodeArr.push(divs[i]);
			}
		}
	}
	
	return nodeArr.length==0 ? null : nodeArr;
}

function registerClickOnTabSelector(id,num,func) {
	var node = findSelectorDiv(id,num);
	
	if (node!=null){
		var oldonclick = node.onclick; 
		if (typeof node.onclick != 'function') { 
		    node.onclick = func; 
		} 
		else { 
		    node.onclick = function() { 
		        if (oldonclick) { 
			    	oldonclick(); 
				} 
				func(); 
		    } 
		} 
	}
}

addLoadEvent(inittabbedcontainers);
