/**
 * date: 2002-10-11
 * info: http://inspire.server101.com/js/tp/
 * ==> '<script type="text/javascript" src="tp.js"></script>'
 * ==> '<link rel="stylesheet" href="tp.css" />'
 */

var tp  = []; // Panels
var tpl = []; // Tabs
var arrayTickets = []; //Array de lso tickets de las pestañas

//------------------------------------------------------------------
/**
 * Sets elements as tabbed panels.
 *  String tpMain:    id of element to contain tabs and panels(tab control).
 *  String classUsed: class name to be used.
 */
function tpSetSelect(tpMain, classUsed) {
  if (!document.createElement) {
    return;
  }

  var eMain = document.getElementById(tpMain);

  var eSelect = document.getElementById('select_'+tpMain); 
     
  var eDiv = document.createElement('div');
  

  // Set class
  eMain.className = eDiv.className = eSelect.className = classUsed;

  var a;
  for (c = 2; c < arguments.length; c++) {

     // Buscar panel de datos y eliminar
     ePanel = document.getElementById(arguments[c]);
     tp[arguments[c]] = ePanel.parentNode.removeChild(ePanel);
     
     var eOption = document.createElement('option');
     eOption = eSelect.appendChild(eOption);    
     
     eOption.setAttribute('value', arguments[c]);
	  eOption.appendChild(document.createTextNode(ePanel.getAttribute('title')));
     // Crear tabs
  }
  
 
  // Activa la primera capa
  eDiv.appendChild(tp[arguments[2]]);  

  // Elimina todas las capas contenidas en la capa principal
  while (eMain.firstChild) eMain.removeChild(eMain.firstChild);

  // A la capa principal le añaden: las pestañas y la primera capa(capa activa por defecto)  
 
  eMain.appendChild(eDiv);
}

//------------------------------------------------------------------
/**
 * Show (swap) a tabbed panel.
 *  String e:     id of element to contain tabs and panels (tab control).
 *  String tabId: id of tab to show.
 */
function tpShowSelect(e, tabId) {
  // Selecciona el objeto último (el que contiene los paneles).  
  eMain = document.getElementById(e).lastChild;

  // Reemplaza el panel elegido por el seleccionado.
  var tabId_old = eMain.replaceChild(tp[tabId], eMain.firstChild).getAttribute('id');  
}

//------------------------------------------------------------------
/**
 * Sets elements as tabbed panels.
 *  String tpMain:    id of element to contain tabs and panels(tab control).
 *  String classUsed: class name to be used.
 *  String defaultTab: tab that i want to show. If it´s "", by default i´ll put the first.
 */
function tpSet(tpMain, classUsed) {
  if (!document.createElement) {
    return;
  }

  defaultTab = arguments[2];	
  if (defaultTab == "") { //Elimino el idticket si no tiene capa por defecto
	  	defaultTab = arguments[3];		
	  	posBarra = arguments[3].lastIndexOf('_');
	  	if (posBarra >= 0) { 
	  		defaultTab = defaultTab.substring(0,defaultTab.lastIndexOf('_'));  
	  	}
  } 
  
  var eMain = document.getElementById(tpMain);

  var eUl  = document.createElement('ul');
  var eDiv = document.createElement('div');
    
  
  // Set class
  eMain.className = eUl.className = eDiv.className = classUsed;

  var a;
  var cadena;
  var posBarra;
  var ticket;
  for (c = 3; c < arguments.length; c++) {
  		
  		posBarra = arguments[c].lastIndexOf('_');
  		cadena = arguments[c];
  		if (posBarra >= 0) { //Saco el idticket del nombre de la capa
  			cadena = cadena.substring(0,posBarra);  			
  			ticket = arguments[c].substring(posBarra+1);
  			arrayTickets[cadena] = ticket;
  		} 		
  		

     // Buscar panel de datos y eliminar
     ePanel = document.getElementById(cadena);
     tp[cadena] = ePanel.parentNode.removeChild(ePanel);

     // Crear tabs
     eLi = document.createElement('li');
     a = eUl.appendChild(eLi);
     a.className = ePanel.className;
     tpl[cadena] = a = a.appendChild(document.createElement('a'));
     a.setAttribute('href', 'javascript:tpShow(\''+tpMain+'\', \''+cadena+'\');');
     a.appendChild(document.createTextNode(ePanel.getAttribute('title')));
  }

  // Activa la primera capa
  eDiv.appendChild(tp[defaultTab]);
  tpl[defaultTab].className = 'active';

  // Elimina todas las capas contenidas en la capa principal
  while (eMain.firstChild) eMain.removeChild(eMain.firstChild);

  // A la capa principal le añaden: las pestañas y la primera capa(capa activa por defecto)
  eMain.appendChild(eUl);
  eMain.appendChild(eDiv);
  
  insertaticket(arrayTickets[defaultTab],''); 
}
//------------------------------------------------------------------
function addTp(tabID) {
  document.appendChild(tp[tabID]);
}
function delTp(tabID) {
  document.removeChild(tp[tabID]);
}
//------------------------------------------------------------------
/**
 * Show (swap) a tabbed panel.
 *  String e:     id of element to contain tabs and panels (tab control).
 *  String tabId: id of tab to show.
 *  Además cargaremos el ticket cuando se cambie de pestaña 
 */
function tpShow(e, tabId) {	
  // Selecciona el objeto último (el que contiene los paneles).
  eMain = document.getElementById(e).lastChild;

  // Reemplaza el panel elegido por el seleccionado.
  var tabId_old = eMain.replaceChild(tp[tabId], eMain.firstChild).getAttribute('id');

  // Desactivar el tab anterior activo
  tpl[tabId_old].className = null;

  // Activar el nuevo tab activo
  tpl[tabId].className = 'active'; 
  
  insertaticket(arrayTickets[tabId],''); 
}

//------------------------------------------------------------------
/*********************************************************
 * Mostrar todas las propiedades y eventos de un objeto  *
 *********************************************************/
function MostrarPropiedadesObjeto(obj) {
   res='<font class=verdana>';

   for (var temp in obj) {
      if ((temp != 'innerHTML') && (temp != 'outerHTML') && (temp != 'outerText')  && (temp != 'innerText')) {
         res+='<b>'+temp+'</b>';
         res+=':<i> ';
         eval("res+=obj."+temp+";");
         res+="</i><br>";
      }
   }

   res+='</font>';
   var win=window.open('','go','width=800,height=670,scrollbars=yes');
   win.document.write(res);
}

/* Función que se encarga de asignarle el ticket a la imaen de globalaudit */
function insertaticket(n,v) {
	// &' + escape(parent.document.referrer) 	
	//alert(parent.document.referrer);
	
	if (!isNaN(n)) {
		if (v == "x") {
			document.images['ImageTicket'].src='http://www.globalaudit.com/audit.cgi?ba050107+' + n + '&' + escape(parent.document.referrer); 
		} else {
			document.images['ImageTicket'].src='http://www.globalaudit.com/audit.cgi?ba050107+' + n; 
		}	
	}
	// alert(document.images['ImageTicket'].src);
}
