// JavaScript Document
//noise.panels por Miguel
var noise = {};
var controlLi;
var context;
var eContext;
var contextNum;
var numChildren;
var currentIndex;
var tabLength = [];
var inheritIndex = [];
var contentsLength;
var content;

var i;
var j;
var p;

noise.panels = function(tabs, contentId){
	//alert(panels.length);
	var tab;
	for(i=0; i<tabs.length; i++){
		tab = document.getElementById(tabs[i]);
		addListenersToList(tab);
	}
	content = document.getElementById(contentId);
	contentsLength = content.children.length;
	showPanel();
}

function addListenersToList(ul){
	var childrenLength;
	childrenLength = ul.children.length;
	tabLength.push(childrenLength);
	if(inheritIndex[i-1]==undefined){
		inheritIndex.push(tabLength[i]);
	}else{
		inheritIndex.push(inheritIndex[i-1]+tabLength[i]);
	}
	for (j=0; j<ul.children.length; j++){
		attachEvent(ul.children[j], "click", clickFunk);
	}
}

function showPanel(panelIndex){
	if(panelIndex == undefined){
		panelIndex=0;
	}else if(panelIndex > contentsLength-1){
		panelIndex = 0;
	}
	for(p=0; p<contentsLength; p++){
		content.children[p].className = "hidden";
		if(p==panelIndex){
			content.children[panelIndex].className = "contentPanel";
		}
	}
	
}



function attachEvent(obj,evt,fnc,useCapture){
	if (!useCapture) useCapture=false;
	if (obj.addEventListener){
		obj.addEventListener(evt,fnc,useCapture);
		return true;
	} else if (obj.attachEvent) {
		switch (evt){
			case "click":
			obj.onclick = fnc;
			break;
			case "mousedown":
			obj.onmousedown = fnc;
			break;
			case "mouseup":
			obj.onmouseup = fnc;
			break;
			case "dblclick":
			obj.ondblclick = fnc;
			break;
		}
		//return obj.attachEvent("on"+evt,function(){fnc()});
	}else{
		myAttachEvent(obj,evt,fnc);
		obj['on'+evt]=function(){MyFireEvent(obj,evt)};
	}
} 

//----------//
function myAttachEvent(obj,evt,fnc){
	if (!obj.myEvents) obj.myEvents={};
	if (!obj.myEvents[evt]) obj.myEvents[evt]=[];
	var evts = obj.myEvents[evt];
	evts[evts.length]=fnc;
}
function myFireEvent(obj,evt){
	if (!obj || !obj.myEvents || !obj.myEvents[evt]) return;
	var evts = obj.myEvents[evt];
	for (var i=0,len=evts.length;i<len;i++) evts[i]();
}

//--- TRIGGER ---//
function clickFunk(){
	var contextId;
	var contextIdChars;
	var contextIdLength;
	var startChar;
	context = this.parentNode;
	contextId = context.id;
	contextIdChars = contextId.split("");
	contextIdLength = contextIdChars.length;
	startChar = contextIdLength-1;
	contextNum = parseInt(contextId.substr(startChar, 2));
	numChildren = context.children.length;
	for(var i=0; i<numChildren; i++){
		if(this == context.children[i]){
			if(contextNum>1){
				currentIndex = i+(inheritIndex[contextNum-2]);
			}else{
				currentIndex = i;
			}
			showPanel(currentIndex);
			break;
		}
	}
}