/**
 * @fileoverview Global js functions used on most pages.
*/
/* Create NetR namespace */
if(typeof NetR == "undefined"){ var NetR = {}; }

/**
 * @requires jQuery
 * @class Module with tabbed content
 * @constructor
 * @param {String or Object} id_or_node The module for which to add tabs
 */
NetR.TabbedModule = function(id_or_node,options){
	this.options = options || {};
	this.el      = typeof id_or_node == "string" ? $("#" + id_or_node) : $(id_or_node);
	this.el.addClass("tabbed-module");
	this._createTabs();
};
NetR.TabbedModule.prototype = {
	/**
	 * Activates a given tab
	 * @param {Object} tab A tab from the this.tabs array
	 */
	activateTab: function(tab){
		$(this.tabs).each(function(){
			$(this.link).parent().removeClass("sel");
			$(this.content).removeClass("active");
		});
		$(tab.link).append(this.active_tab_suffix);
		$(tab.link).parent().addClass("sel");
		$(tab.content).addClass("active");
	},

	/**
	 * Creates the neccessary markup for all tabs
	 * @private
	 */
	_createTabs: function(){
		var self     = this;
		this.tabs    = [];
		this.active_tab_suffix = $("<span />").attr("class", "structural").text(this.options.active_tab_suffix || " (visas nu)");
		if ($('#m-bigbox').length) {
			this.tabs_ul = $('<ul class="m-tabs cf" />').prependTo(this.el);
		} else {
			this.tabs_ul = $('<ul class="m-tabs cf" />').appendTo(this.el);
			this.tabs_ul.wrap('<div class="m-f"/>');
		}
		$(".m-c", this.el).each(function(){
			var tab = {};
			tab.content = this;
			tab.label = $($(".tab-label", this)[0]).html();
			if ($('#m-bigbox').length) {
				tab.link = $('<a href="#">'+tab.label+'</a>').addClass("tab-" + tab.content.id);
			} else {
				tab.link = $(tab.label).addClass("tab-" + tab.content.id);
			}
			tab.link.appendTo(self.tabs_ul).wrap("<li/>");
			if($(tab.content).hasClass("active")){
				tab.link.parent().addClass("sel");
			}
			if ($('#m-bigbox').length) {
				tab.link.bind('click', function(e){
					self.activateTab(tab);
					return false;
				});
			} else {
				tab.link.bind('mouseover manual', function(e){
					self.activateTab(tab);
				});
			}
			self.tabs.push(tab);
		});
	}
};

