var MarketingModule = {
    tabs: getElements("tab", "div", getElements("tabs", "div", document.getElementById("marketing_module_area"))[0]),
    modules: getElements("module", "div", document.getElementById("marketing_module_content")),

    activateTab: function(tab) {
        if (hasClass(this, "active"))
            return;

        for (var i = 0; i < MarketingModule.tabs.length; ++i) {
        	if (hasClass(MarketingModule.tabs[i], "active")) {
        		replaceClass(MarketingModule.tabs[i], "active", "inactive");
        		var dividers = MarketingModule.getAdjacentDividers(MarketingModule.tabs[i]);
        		if (dividers["leftDivider"] != null) { 
        			dividers["leftDivider"].style.visibility = "visible";
        		}
        		
        		if (dividers["rightDivider"] != null) { 
        			dividers["rightDivider"].style.visibility = "visible";
        		}
        	}
        }

        for (var i = 0; i < MarketingModule.modules.length; ++i) {
            replaceClass(MarketingModule.modules[i], "active", "inactive");
        }

        replaceClass(MarketingModule.tabs[this.index], "inactive", "active");
   		var dividers = MarketingModule.getAdjacentDividers(MarketingModule.tabs[this.index]);
   		if (dividers["leftDivider"] != null) {
   			dividers["leftDivider"].style.visibility = "hidden";
   		}
		if (dividers["rightDivider"] != null) {
			dividers["rightDivider"].style.visibility = "hidden";
		}

        replaceClass(MarketingModule.modules[this.index], "inactive", "active");
    },
    
    getAdjacentDividers: function(tab) {
		var leftDivider = null, rightDivider = null;
		
		var prevNode = tab.previousSibling, nextNode = tab.nextSibling;
		while (true) {
			if (prevNode == null)
				break;
			else if (prevNode.nodeType != 1)
				prevNode = prevNode.previousSibling;
			else if (hasClass(prevNode, "divider")) {
				leftDivider = prevNode;
				break;
			}
			else
				prevNode = prevNode.previousSibling;
		}
		while (true) {
			if (nextNode == null)
				break;
			else if (nextNode.nodeType != 1)
				nextNode = nextNode.nextSibling;
			else if (hasClass(nextNode, "divider")) {
				rightDivider = nextNode;
				break;
			}
			else
				nextNode = nextNode.nextSibling;
		}
		
		return {
			"leftDivider": leftDivider,
			"rightDivider": rightDivider
		};

    }
};

for (var i = 0; i < MarketingModule.tabs.length; ++i) {
	var tab = MarketingModule.tabs[i];
	
	if (hasClass(tab, "active")) {
		var dividers = MarketingModule.getAdjacentDividers(tab);
		if (dividers["leftDivider"]) dividers["leftDivider"].style.visibility = "hidden";
		if (dividers["rightDivider"]) dividers["rightDivider"].style.visibility = "hidden";
	}
	
    MarketingModule.tabs[i].index = MarketingModule.modules[i].index = i;
    Handler.add(MarketingModule.tabs[i], "click", MarketingModule.activateTab);
}

