var Mackolik;
Mackolik = Mackolik || {};

Mackolik.Tab = function (sModuleName) {
    this.sModuleName = sModuleName;
    this.aTabs = [];
    this.sBody = "";
    this.aDataProcessed=[1,1,1,1];
    this.bHotLinkEnable = 1;
    this.oHotLinks = null;
    this.dCurTab = "";
    this.dCurTabNum = 1;
    this.sCurrentTab = null;
    this.fAction = null;
};

Mackolik.Tab.prototype.setupTabs = function() {
    var dTab = document.getElementById(this.sModuleName).getElementsByTagName("li");
    var nTabLength = dTab.length, i, j;
    var oSelf = this; 
    var fAction = function(e) {
	    var eNode = YAHOO.util.Event.getTarget(e);
	    var eParentNode = eNode;
		var dNode = document.all ? window.event.srcElement : e.target;
        oSelf.tabAction(e, dNode);
		return false;
    }
    
    for (i = 0; i < nTabLength; i++) {
		if (YAHOO.util.Dom.hasClass(dTab[i], "on")) {
			this.dCurTab = dTab[i];
		}
		var dClickTag = dTab[i].getElementsByTagName("a") || 0;
		var nClickTagLength = dClickTag.length;
		for (j = 0; j < nClickTagLength; j++) {
		    dClickTag[j].order = (i + 1);
		    this.aTabs[(i + 1)] = dClickTag[j];
	        YAHOO.util.Event.addListener(
		        dClickTag[j], "click", fAction);
		}
    }	
};

Mackolik.Tab.prototype.changeTab = function(dNode) {
	if ((this.dCurTabNum - 1) > 0) {
		YAHOO.util.Dom.removeClass(this.aTabs[(this.dCurTabNum - 1)].parentNode.parentNode, "off");
	}
	YAHOO.util.Dom.removeClass(this.dCurTab, "on");
    this.dCurTab = dNode.parentNode.parentNode;

	this.dCurTabNum = dNode.order;
	YAHOO.util.Dom.addClass(this.dCurTab, "on");
	if ((this.dCurTabNum - 1) > 0) {
		YAHOO.util.Dom.addClass( this.aTabs[(this.dCurTabNum - 1)].parentNode.parentNode, "off");
	}
};

Mackolik.Tab.prototype.tabAction = function(e, dNode) {
	if (dNode.tagName == 'IMG') {
		dNode = dNode.parentNode;
	}
	this.loadPanel(dNode);

	return false;
};

Mackolik.Tab.prototype.loadPanel = function(dNode) {
    if (!this.aDataProcessed[dNode.order-1]) {
        this.fAction(dNode, this);
    } else {
        this.changeTab(dNode);
        this.showPanel(this.sBody + dNode.order);
    }        
    return;
};

Mackolik.Tab.prototype.showPanel = function (sCurrentNodeId) {
  	var a = arguments;
	var sTagName = 'span';
	var sClassName = 'current';
	var aNodes = YAHOO.util.Dom.getChildren(document.getElementById(sCurrentNodeId).parentNode);
	var nNodesLength = aNodes.length, i;
	for (i = 0; i < nNodesLength; i++) {
		if (YAHOO.util.Dom.hasClass(aNodes[i], sClassName)) {
			YAHOO.util.Dom.removeClass(aNodes[i], sClassName);
		}
	}
	YAHOO.util.Dom.addClass(document.getElementById(sCurrentNodeId), sClassName);  
};

