/* ************
Tab view
************ */

var espacieamientoTexto = 25; // Espacio de la izquierda del texto de la pestaña, mayor valor = mayor espacio
var strictDocType = true;
var maximoDePestanas = 3; // Numero maximo de pestañas

/* Dejar intacto debajo de este texto */
var pestanas_Obj = new Array();
var pestanaActivaIndex = new Array();
var MSIE = navigator.userAgent.indexOf('MSIE')>=0? true: false;

var regExp = new RegExp(".*MSIE ([0-9]\.[0-9]).*", "g");
var versionDeNavegador = navigator.userAgent.replace(regExp, '$1');

var ajaxObjects = new Array();
var tabView_countTabs = new Array();
var tabViewHeight = new Array();
var tabDivCounter = 0;

function setPadding(obj, padding) {
  var span = obj.getElementsByTagName('SPAN')[0];
  span.style.paddingLeft = padding + 'px';
  span.style.paddingRight = padding + 'px';
}
function showTab(parentId, tabIndex)
{
  var parentId_div = parentId + "_";
  if(!document.getElementById('tabView' + parentId_div + tabIndex)) {
    return;
  }
  if(pestanaActivaIndex[parentId]>=0) {
    if(pestanaActivaIndex[parentId]==tabIndex) {
      return;
    }

    var obj = document.getElementById('tabTab'+parentId_div + pestanaActivaIndex[parentId]);

    obj.className = 'pestanaInactiva';
    var img = obj.getElementsByTagName('IMG')[0];
    if(img.src.indexOf('tab_')==-1)img = obj.getElementsByTagName('IMG')[1];
    img.src = 'imagenes/tab_right_inactive.gif';
    document.getElementById('tabView' + parentId_div + pestanaActivaIndex[parentId]).style.display = 'none';
  }

  var thisObj = document.getElementById('tabTab'+ parentId_div +tabIndex);

  thisObj.className = 'pestanaActiva';
  var img = thisObj.getElementsByTagName('IMG')[0];
  if(img.src.indexOf('tab_')==-1)img = thisObj.getElementsByTagName('IMG')[1];
  img.src = 'imagenes/tab_right_active.gif';

  document.getElementById('tabView' + parentId_div + tabIndex).style.display = 'block';
  pestanaActivaIndex[parentId] = tabIndex;

  var parentObj = thisObj.parentNode;
  var aTab = parentObj.getElementsByTagName('DIV')[0];
  countObjects = 0;
  var startPos = 2;
  var previousObjectActive = false;
  while(aTab) {
    if(aTab.tagName=='DIV') {
      if(previousObjectActive) {
        previousObjectActive = false;
        startPos -= 2;
      }
      if(aTab==thisObj) {
        startPos -= 2;
        previousObjectActive = true;
        setPadding(aTab, espacieamientoTexto+1);
      }else {
        setPadding(aTab, espacieamientoTexto);
      }

      aTab.style.left = startPos + 'px';
      countObjects++;
      startPos += 2;
    }
    aTab = aTab.nextSibling;
  }

  return;
}

function tabClick()
{
  var idArray = this.id.split('_');
  showTab(this.parentNode.parentNode.id, idArray[idArray.length-1].replace(/[^0-9]/gi, ''));

}

function rolloverTab()
{
  if(this.className.indexOf('pestanaInactiva')>=0) {
    this.className = 'pestanaInactivaOver';
    var img = this.getElementsByTagName('IMG')[0];
    if(img.src.indexOf('tab_')<=0)img = this.getElementsByTagName('IMG')[1];
    img.src = 'imagenes/tab_right_over.gif';
  }

}
function rolloutTab()
{
  if(this.className == 'pestanaInactivaOver') {
    this.className = 'pestanaInactiva';
    var img = this.getElementsByTagName('IMG')[0];
    if(img.src.indexOf('tab_')<=0)img = this.getElementsByTagName('IMG')[1];
    img.src = 'imagenes/tab_right_inactive.gif';
  }

}

function initTabs(mainContainerID, tabTitles, activeTab, width, height, additionalTab)
{

  if(!additionalTab || additionalTab=='undefined') {
    pestanas_Obj[mainContainerID] = document.getElementById(mainContainerID);
    width = width + '';
    if(width.indexOf('%')<0)width = width + 'px';
    pestanas_Obj[mainContainerID].style.width = width;

//Descomentar la declaración de abajo si deseas establecer una altura especifica para las pestañas

   /* height = height + '';
    if(height.length>0) {
      if(height.indexOf('%')<0)height = height + 'px';
      pestanas_Obj[mainContainerID].style.height = height;
    }   */

    tabViewHeight[mainContainerID] = height;

    var tabDiv = document.createElement('DIV');
    var firstDiv = pestanas_Obj[mainContainerID].getElementsByTagName('DIV')[0];

    pestanas_Obj[mainContainerID].insertBefore(tabDiv, firstDiv);
    tabDiv.className = 'pestanasDinamicas';
    tabView_countTabs[mainContainerID] = 0;

  }else {
    var tabDiv = pestanas_Obj[mainContainerID].getElementsByTagName('DIV')[0];
    var firstDiv = pestanas_Obj[mainContainerID].getElementsByTagName('DIV')[1];
    height = tabViewHeight[mainContainerID];
    activeTab = tabView_countTabs[mainContainerID];

  }

  for(var no = 0; no<tabTitles.length; no++) {
    var aTab = document.createElement('DIV');
    aTab.id = 'tabTab' + mainContainerID + "_" + (no + tabView_countTabs[mainContainerID]);
    aTab.onmouseover = rolloverTab;
    aTab.onmouseout = rolloutTab;
    aTab.onclick = tabClick;
    aTab.className = 'pestanaInactiva';
    tabDiv.appendChild(aTab);
    var span = document.createElement('SPAN');
    span.innerHTML = tabTitles[no];
    span.style.position = 'relative';
    aTab.appendChild(span);

    var img = document.createElement('IMG');
    img.valign = 'bottom';
    img.src = 'imagenes/tab_right_inactive.gif';
    // IE5.X FIX
    if((versionDeNavegador && versionDeNavegador<6) || (MSIE && !strictDocType)) {
      img.style.styleFloat = 'none';
      img.style.position = 'relative';
      img.style.top = '4px'
      span.style.paddingTop = '4px';
      aTab.style.cursor = 'hand';
    } // End IE5.x FIX
    aTab.appendChild(img);
  }

  var tabs = pestanas_Obj[mainContainerID].getElementsByTagName('DIV');
  var divCounter = 0;
  for(var no = 0; no<tabs.length; no++) {
    if(tabs[no].className=='pestanasStps' && tabs[no].parentNode.id == mainContainerID) {
      if(height.length>0)tabs[no].style.height = height;
      tabs[no].style.display = 'none';
      tabs[no].id = 'tabView' + mainContainerID + "_" + divCounter;
      divCounter++;
    }
  }
  tabView_countTabs[mainContainerID] = tabView_countTabs[mainContainerID] + tabTitles.length;
  showTab(mainContainerID, activeTab);

  return activeTab;
}

function showAjaxTabContent(ajaxIndex, parentId, tabId)
{
  var obj = document.getElementById('tabView'+parentId + '_' + tabId);
  obj.innerHTML = ajaxObjects[ajaxIndex].response;
}

function resetTabIds(parentId)
{
  var tabTitleCounter = 0;
  var tabContentCounter = 0;

  var divs = pestanas_Obj[parentId].getElementsByTagName('DIV');

  for(var no = 0; no<divs.length; no++) {
    if(divs[no].className=='pestanasStps') {
      divs[no].id = 'tabView' + parentId + '_' + tabTitleCounter;
      tabTitleCounter++;
    }
    if(divs[no].id.indexOf('tabTab')>=0) {
      divs[no].id = 'tabTab' + parentId + '_' + tabContentCounter;
      tabContentCounter++;
    }

  }

  tabView_countTabs[parentId] = tabContentCounter;
}

function getTabIndexByTitle(tabTitle)
{
  var regExp = new RegExp("(.*?)&nbsp.*$", "gi");
  tabTitle = tabTitle.replace(regExp, '$1');
  for(var prop in pestanas_Obj) {
    var divs = pestanas_Obj[prop].getElementsByTagName('DIV');
    for(var no = 0; no<divs.length; no++) {
      if(divs[no].id.indexOf('tabTab')>=0) {
        var span = divs[no].getElementsByTagName('SPAN')[0];
        var regExp2 = new RegExp("(.*?)&nbsp.*$", "gi");
        var spanTitle = span.innerHTML.replace(regExp2, '$1');

        if(spanTitle == tabTitle) {

          var tmpId = divs[no].id.split('_');
          return Array(prop, tmpId[tmpId.length-1].replace(/[^0-9]/g, '')/1);
        }
      }
    }
  }

  return -1;

}

