// NAMESPACE DEFINITIONs
if (!$defined(GoalCom)) {var GoalCom={};}
if (!$defined(GoalCom.UI)) {GoalCom.UI={};}

// GOALCOM.UI.CMOOTABS
GoalCom.UI.CMooTabs = new Class({
	options : {
		"selectedClass" : "i-sel"
	},
	
	initialize : function(el,curTargetId,options) {
		this.setOptions(options);
		this._el = $(el);
		this._curIndex = -1;
		// DOM SETUP
		var i,j,k=-1;
		var l1 = $ES("li a",this._el);
		j=l1.length;
		var t1 = this;
		var s1;
		// TABs SETUP
		for (i=0;i<j;i++){
			l1[i].addEvent("click", function(e){
				new Event(e).preventDefault();
				t1.changeTab(parseInt(this.mooTabIndex));
			});
			l1[i].mooTabIndex = i;
			s1 = l1[i].href;
			if (s1.substr(s1.indexOf("#")+1) == curTargetId){
				k=i;
			}
			this._chTabVis(i,k==i);
		}
		this._curIndex=k;
	},
	
	_chTabVis : function(index,vis){
		vis = $pick(vis,false);
		try{
			var el1,s1;
			if (index > -1) {
				el1 = $($ES("li a",this._el)[index]);
				s1 = el1.href.substr(el1.href.indexOf("#")+1);
				if (vis)
					el1.addClass(this.options.selectedClass);
				else
					el1.removeClass(this.options.selectedClass);
				$(s1).setStyle("display", (vis?"block":"none"));
			}
		}catch(e){}
		return this;
	},
	
	changeTab : function(newIndex){
		try {
			if (this._curIndex != newIndex){
				// TAB HAS CHANGED
				this._chTabVis(this._curIndex,false)._chTabVis(newIndex,true);
				this._curIndex = newIndex;
			}
		}catch(e){}
		return this;
	}
});

GoalCom.UI.CMooTabs.implement(new Options);
