
// **************************************************************************************************************************
//
// Title :			cimexTabs.js
// Author : 		Ben Sekulowicz-Barclay
//
// Description : 	v0.1
//
// **************************************************************************************************************************

var cimexTabs = Class.create();

cimexTabs.prototype = {

	initialize: function(c) {
		this.c = c;			
		Event.observe(window, "load", this.onLoadStart, false);
	},
	
	// ONLOAD TRIGGERS ******************************************************************************************************
	
	onLoadStart: function() {			
		// For each occurrence of target class
		for (var i = 0; i < document.getElementsByClassName(cxTabs.c).length; i++) {
			cxTabs.dispL(document.getElementsByClassName(cxTabs.c)[i], 0);
			cxTabs.dispC(document.getElementsByClassName(cxTabs.c)[i], 0);
		}			
	},
	
	// ONCLICK TRIGGERS *****************************************************************************************************
	
	onClickTab: function(e) {		
		// Setup the event target variable, (IE bug)
		if (document.all) {
			var x = Event.element(e);	
		} else {
			var x = this;	
		}
		
		cxTabs.dispL(x.parentNode.parentNode.parentNode, cxTabs.getCount(x));
		cxTabs.dispC(x.parentNode.parentNode.parentNode, cxTabs.getCount(x));
	},

	// **********************************************************************************************************************
	
	dispL: function(e, x) {
		var checkFlag = 0;
		
		for (var i = 0; i < e.childNodes.length; i++) {
			// If it is a UL (the tab nav)
			if (e.childNodes[i].tagName == "UL") {							
				for (var j = 0; j < e.childNodes[i].childNodes.length; j++) {					
					if (e.childNodes[i].childNodes[j].tagName == "LI") {							
						Element.removeClassName(e.childNodes[i].childNodes[j], "cxTabsCurrent");
						if (checkFlag == x) {
							Element.addClassName(e.childNodes[i].childNodes[j], "cxTabsCurrent");	
						}
						
						// Add observation event
						for (var k = 0; k < e.childNodes[i].childNodes[j].childNodes.length; k++) {								
							if (e.childNodes[i].childNodes[j].childNodes[k].tagName == "A") {
								Event.observe(e.childNodes[i].childNodes[j].childNodes[k], "click", this.onClickTab);	
								e.childNodes[i].childNodes[j].childNodes[k].onclick = function() { return false; }						
							}							
						}							
						checkFlag ++;
					}
				}
			}						
		}
	},
	
	// **********************************************************************************************************************
	
	dispC: function(e, x) {	
		var checkFlag = 0;				for (var i = 0; i < e.childNodes.length; i++) {
			// If it is a DIV (content DIV)				
			if (e.childNodes[i].tagName == "DIV") {
				// e.childNodes[i].style.display = "none";
				Element.addClassName(e.childNodes[i], "cxTabsHide");
				if (checkFlag == x) {
				//	e.childNodes[i].style.display = "block";	
					Element.removeClassName(e.childNodes[i], "cxTabsHide");
				}
				checkFlag ++;
			}						
		}	
	},
	
	// **********************************************************************************************************************
	
	getCount: function(a) {
		var x = 0;			
		for (var i = 0; i < a.parentNode.parentNode.childNodes.length; i++) {
			if (a.parentNode.parentNode.childNodes[i].tagName == "LI") {
				if (a.parentNode.parentNode.childNodes[i] == a.parentNode) {					
					return x;	
				}
				x++;
			}
		}
	}
	
	// FIN ******************************************************************************************************************
};      
