
// Tabs
tab_vcount = 0;

function make_vtab_group_of_tab(vtab) {
  
  if (vtab.tagName.toLowerCase() != 'h5') {
    return;
  }
  var vtab_group_start = vtab;
  var v_element = vtab;
  var vtab_group_navigation = new Element('ul');
  var current_vtab = vtab;
  var current_vtab_content = null;
  var current_vtab_container = null;
  var vtab_container;
  var v_li = null;
  var v_a = null;
  var v_b = null;
  var is_first_vtab = true;
  
  while (!v_element.getParent().hasClass('mainslot')) {
    v_element = v_element.getParent();
  }
  
  if (v_element.belongs_to_tab_group != null) {
    return;
  }
  
  
  vtab_group_navigation.addClass('tab-navigation_vertical');
  
  while (true) {
    v_element.belongs_to_tab_group = vtab_group_start;
    if (!is_vtab_end(v_element)) {
      current_vtab_content.push(v_element);
    }
    
    if (is_vtab_end(v_element) || indicates_tab_group_end(v_element.getNext())) {
      if (current_vtab_content != null) {
        current_vtab_content.each(function(vtab_content) {
          vtab_content.injectInside(current_vtab_container);
        });
        if (!is_first_vtab) {
          current_vtab_container.style.display = 'none';
        }
        current_vtab_container.injectAfter(current_vtab);
        is_first_vtab = false;
        //console.log(current_vtab_container.innerHTML);
      }
      current_vtab = v_element;
      // current_vtab.style.display = 'none';
	  
      current_vtab_content = new Array();
      current_vtab_container = new Element('div');
      current_vtab_container.addClass('tab-container');
	  current_vtab_container.addClass('tab_vertical');
      current_vtab_container.id = 'vtab-' + (++tab_vcount);

      // console.log(current_vtab_container.id);
      
      if (current_vtab.getElements('h5.tab_vert').length > 0) {
		  
		// Is this a main title or a subtitle? 
		if (current_vtab.getElements('h5.vert_title').length > 0) {
			  
			  /*v_li = new Element('li');
			  v_b = new Element('h2');
			  v_b.set('text', current_vtab.get('text').replace(/\r?\n/g,""));
			  v_b.injectInside(v_li);
			  v_li.addClass('vert_title');*/
			  
			  	v_li = new Element('li');
				v_a = new Element('a');
				v_a.href = '#vtab-' + tab_vcount;
				v_b = new Element('h2');
				v_b.set('text', current_vtab.get('text').replace(/\r?\n/g,""));
				v_b.injectInside(v_a);
				//a.set('text', current_tab.get('text').replace(/\r?\n/g,""));
				v_a.injectInside(v_li);
				v_li.addClass('vert_title'); 
			  
			
		} else if (current_vtab.getElements('h5.vert_subtitle').length > 0) {
			 	v_li = new Element('li');
				v_b = new Element('h3');
				v_b.set('text', current_vtab.get('text').replace(/\r?\n/g,""));
				v_b.injectInside(v_li);
				v_li.addClass('vert_subtitle'); 
			  
		
		} else {
		  
				v_li = new Element('li');
				v_a = new Element('a');
				v_a.href = '#vtab-' + tab_vcount;
				v_a.set('text', current_vtab.get('text').replace(/\r?\n/g,""));
				v_a.injectInside(v_li);
			
			
			if (is_first_vtab) {
			    v_li.addClass('active');
			}
		}
		
		v_li.injectInside(vtab_group_navigation);
		
      }
    }
    
    v_element = v_element.getNext();
    if (indicates_tab_group_end(v_element)) {
      break;
    }
  }
  
  //console.log(current_vtab_container.id);
  
  
  //vtab_group_navigation.injectAfter(current_vtab_container);
  
  
  
  vtab_group_navigation.injectBefore($('nav_here'));
  
  
  //vtab_group_navigation.injectBefore(vtab_group_start);
}

function indicates_tab_group_end(v_element) {
  if (typeof(v_element) == 'undefined' || v_element == null) {
    // console.log('group end? undef or null!');
    return true;
  } else if (v_element.getElements('.tab_vert-end').length > 0) {
    // console.log('group end? tab end');
    return true;
  }
  // console.log('group end? no');
  return false;
}

function is_vtab_end(v_element) {
  if (v_element.getElements('h5.tab_vert').length > 0) {
    return true;
  } else if (v_element.getElements('.tab_vert-end').length > 0) {
    return true;
  }
  return false;
}

function v_tab_click() {
  //console.log(this);
  var v_li = this.getParent();
  //console.log(v_li);
  var this_vtab_content = $(this.hash.replace('#', ''));
  
  v_li.getParent().getElements('a').each(function(v_element) {
    var vtab_content = $(v_element.hash.replace('#', ''));
    if (vtab_content) {
      vtab_content.style.display = 'none';
	  
    }
    v_element.getParent().removeClass('active');
  });
  
  if (this_vtab_content) {
    this_vtab_content.style.display = 'block';
  }
  this.getParent().addClass('active');
  
  //$$('div#vtab-1').setStyle('display', 'none');
  
  return false;
}

function apply_vtabs() {
  $$('.tab_vert').each(make_vtab_group_of_tab);
  $$('h5.tab_vert').setStyle('display', 'none');
  $$('ul.tab-navigation_vertical a').each(function(v_element) {
    v_element.onclick = v_tab_click;
  });
}

window.addEvent('domready', apply_vtabs);
