/** selector.js                                      **
 ** (c) Nacex 2006                                   **
 ** author : Pedro Puertas                           **/


var teclaValida = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
var teclaValida = teclaValida + "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"; 
var lista_Btn = "";
var selector_actual;
var tmpScroll;
var onSelectMultiple = "";

 function creaBoton(input){
  btn=document.createElement('div');
  btn.id=input+'_btn';
  btn.className = "botonActivo";
  document.body.appendChild(btn);
  pos_btn(document.getElementById(input));
  if (lista_Btn.length>0) lista_Btn=lista_Btn+";";
  lista_Btn = lista_Btn + input+'_btn';
 }

 function pos_btn(input) {
 	if(input!=null){
 		var obj;
 		var tmp = new String (input.id);
 		if (tmp==null || tmp.length == 0) {
 			obj = input.name;
 		} else {
 			obj = input.id;
 		}
   		document.getElementById(obj+'_btn').style.top=findPosY(input)+1;
   		document.getElementById(obj+'_btn').style.left=findPosX(input)+input.offsetWidth-input.offsetHeight; 
		document.getElementById(obj+'_btn').style.height=input.offsetHeight-2;
		document.getElementById(obj+'_btn').style.width=input.offsetHeight-1;		 	
 	} 
 }

function isTeclaCorrectaSelector (keyCode) {
		var tecla = String.fromCharCode (keyCode);		
		if (teclaValida.indexOf(tecla)!=-1 || keyCode==8 || keyCode==46) {
			return true;
		} else {
			return false;
		}
}

function selector(input, sURL, sMethod, form, onSelect, onNoData, selector_activo, multiple)
{
  if (selector_activo && !selector_activo()) return;
  var xmlhttp, bComplete = false, sVars="";
  var target=document.getElementById(input); 
  try { xmlhttp = new XMLHttpRequest(); }
  catch (e) { try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }  
  catch (e) { xmlhttp = false; }}}
  if (!xmlhttp) {
  	alert("No puedo ejecutar AJAX. Actualice su navegador");
			return null;
  }

  init_selector(multiple);
 
  pos_panel(target);
  pos_img(target);		

  document.getElementById("img_selector").style.visibility='visible';
  document.getElementById("panel_selector").style.visibility='hidden';    
  document.getElementById("panel_selector_CAB").style.visibility='hidden';    
  if (document.getElementById("panel_selector_multiple")) document.getElementById("panel_selector_multiple").style.visibility='hidden'; 
  bComplete = false;
  sMethod = sMethod.toUpperCase();

  try {
   if (form != null) {
	  	for (i = 0; i < form.elements.length; i++) {
						if (sVars.length > 0) sVars += "&";
					 sVars = form.elements[i].id+"="+form.elements[i].value;
				}
	  }
   if (sMethod == "GET")
   {
				if (sVars != null && sVars.length > 0) sVars = "?"+sVars;
				xmlhttp.open(sMethod, sURL+sVars, true);
				sVars = "";
   } else {
    xmlhttp.open(sMethod, sURL, true);
    xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   }
   xmlhttp.onreadystatechange = function(){
		   if (xmlhttp.readyState == 4 && !bComplete)
		   {
		      bComplete = true;
		      selector_response(xmlhttp.responseText, onSelect, onNoData, multiple,target);
		    }
	  };
   xmlhttp.send(sVars);
  } catch(z) { 
		 alert(z);
		 return false; 
		}
  return true;
}

function selector_response(text, onSelect, onNoData, multiple, target) 	{ 	
	//Modificado
	//tmpScroll = document.body.scrollTop;
	//document.body.scroll="no";
	if (crea_tabla(document.getElementById("panel_selector"),text, onSelect, onNoData, multiple)) {
			crearTabalCAB(multiple);
	  document.getElementById("img_selector").style.visibility='hidden';
   document.getElementById("panel_selector").style.visibility='visible';    
  	document.getElementById("panel_selector_CAB").style.visibility='visible';    
  	//Para el selector multiple.
  	if((multiple == true) && (document.getElementById("panel_selector_multiple"))){
  	  //En este punto tendremos asignada la variable global "onSelectMultiple", correspondiente a la funci?n a
  	  //realizar en el selector multiple que tenga el foco, ya que se asigna en la funci?n "crea_tabla" seg?n
  	  //el valor del parametro "multiple" y el parametro "onSelect".
  	  crearTablaMultiple();
  	  document.getElementById("panel_selector_multiple").style.visibility='visible';  
  	  document.getElementById("panel_selector").onkeydown = keySelector;
  	}
	  recalcAltoPanel();
      pos_panel(target);
      initCabecera();
      
	    //Modificado   	
	    //--CORRIGE PROBLEMA DEL DESPLEGABLE OCULTO TRAS SELECTOR (muestra)
	    document.getElementById("panel_selector").style.display = "block";
	    var IfrRef = document.getElementById('iframeSelector'); 
	    if  (IfrRef != null)
	    {
		  IfrRef.style.top =   document.getElementById("panel_selector").style.top;
		  IfrRef.style.left =  document.getElementById("panel_selector").style.left;
		  IfrRef.style.width = document.getElementById("panel_selector").offsetWidth;
		  IfrRef.style.height = document.getElementById("panel_selector").offsetHeight;
		  IfrRef.style.position = document.getElementById("panel_selector").style.position;
		  IfrRef.style.zindex = document.getElementById("panel_selector").style.zindex - 1;
		  IfrRef.style.display = "block";
		}
	   //--
	} 
   
	//Modificado	
	//document.body.scrollTop = tmpScroll;
}

function init_selector(multiple) {
  if (!document.getElementById('img_selector')) {
			creaImagen();
			creaPanel();  
			crearPanelCAB();
  }
  if(multiple == true){
			  crearPanelMultiple();
		}
}

function reset_selector() {
	//Modificado
  //document.body.scroll="auto";
  if (document.getElementById('img_selector')) {
	  document.getElementById("img_selector").style.visibility='hidden';
	  document.getElementById("panel_selector").style.visibility='hidden';    
	  document.getElementById("panel_selector_CAB").style.visibility='hidden';  
	  if (document.getElementById("panel_selector_multiple")) {
	     document.getElementById("panel_selector_multiple").style.visibility='hidden';
	  }     
	  //Modificado
		//document.getElementById("panel_selector").scrollTop = 0;
  }
  
  //Modificado
  //--CORRIGE PROBLEMA DEL DESPLEGABLE OCULTO TRAS SELECTOR (oculta)
  var IfrRef = document.getElementById('iframeSelector');
  if (IfrRef != null)
	IfrRef.style.display = "none";
  //--
  
  posActualSelector = 1;
  onSelectMultiple = "";
}

function borra_selector(){
	if(document.getElementById("img_selector")){
		el = document.getElementById("img_selector");
		padre = el.parentNode;
		padre.removeChild(el);
	}

	if(document.getElementById("panel_selector")){
		el = document.getElementById("panel_selector");
		var padre = el.parentNode;
		padre.removeChild(el);
	}
	  
	if(document.getElementById("panel_selector_CAB")){
		el = document.getElementById("panel_selector_CAB");
		padre = el.parentNode;
		padre.removeChild(el);
	}

	if(document.getElementById("panel_selector_multiple")){
		el = document.getElementById("panel_selector_multiple");
		padre = el.parentNode;
		padre.removeChild(el);  
	}
	  
}

function creaPanel() {
	 D = document.createElement("div");
	 D.id='panel_selector';
	 D.style.visibility='hidden';
	 D.style.position="absolute";
	 D.style.top='0';
	 D.style.left='0';
	 D.style.height='80';
	 D.className="divSelector";	 
	 document.body.appendChild(D);
}
 
function creaImagen() {
  newimg=document.createElement('img');
  newimg.id='img_selector';
  newimg.style.visibility='hidden';
  newimg.src="pages/img/web/cargando.gif";
  newimg.style.position='absolute';
  document.body.appendChild(newimg);
}
 
function pos_panel(input) {
		if ((document.getElementById('panel_selector').clientWidth+findPosX(input)+10) > document.body.clientWidth) {
			var obj = document.getElementById(selector_actual);
			var pos = (findPosX(obj) + obj.clientWidth) - document.getElementById('panel_selector').clientWidth;
			document.getElementById('panel_selector').style.left=pos;
		} else {
			document.getElementById('panel_selector').style.left=findPosX(input); 
		}
		if ((document.getElementById('panel_selector').offsetHeight+findPosY(input)) > (document.body.clientHeight+document.body.scrollTop)) {
			var obj = document.getElementById(selector_actual);
			var pos = (findPosY(obj) + obj.clientHeight) - document.getElementById('panel_selector').offsetHeight;
			document.getElementById('panel_selector').style.top = pos-18;
		} else {
			document.getElementById('panel_selector').style.top=findPosY(input)+input.offsetHeight; 	
		}
 	
}

function pos_img(input) {
  	document.getElementById('img_selector').style.top=findPosY(input)+1;

  	if (document.getElementById(input.id+"_btn") || document.getElementById(input.name+"_btn")) {
    	document.getElementById('img_selector').style.left=findPosX(input)+input.offsetWidth-36; 
  	} else {
		document.getElementById('img_selector').style.left=findPosX(input)+input.offsetWidth-20; 	
  	}
}
 
function findPosX(obj)
{
	var curleft = 0;
	
	if (obj.style.posLeft) curleft += obj.style.posLeft;
	if (obj.offsetParent)	{
		while (obj.offsetParent)	{
			if (obj.style.position != 'absolute') {
				curleft += obj.offsetLeft;
			}
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)	{
	 curleft += obj.x;
	} 
	
	return curleft;
} 


function findPosY(obj)
{
	var curtop = 0;

	if (obj.style.posTop) curtop += obj.style.posTop;
	if (obj.offsetParent)	{
		while (obj.offsetParent)	{
			if (obj.style.position != 'absolute') {
				curtop += obj.offsetTop;
			} else {
			}
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)	curtop += obj.y;
	return curtop;
} 

function crea_tabla(parent,texto,onSelect, onNoData, multiple) {
	var lineas = texto.split(";");
	var linea = '';
	if (document.getElementById("tabla_selector")) parent.removeChild(document.getElementById("tabla_selector"));
	
	if (lineas.length-1 <= 1) {
	 	reset_selector(); 
	 	if (onNoData) onNoData();
		 return false;
	}
	
	tabla = document.createElement("TABLE");
	tabla.id = "tabla_selector";
	tabla.className="tabla_selector";
	tabla.cellSpacing=0;
	tabla.cellPadding=1;
	tabla.width='100%';
	tablaBody = document.createElement("TBODY");

	for (var i=0; i < lineas.length-1; i++) {
		  row = document.createElement("TR");
				row.id = "tr"+i;
				if (i == 0) { 
					row.className="fila_selector_cabecera";
				} else {
						if (multiple == false){
						   onSelectMultiple = "";
						   row.onclick = function() {
						    onSelect(this); 
						    reset_selector(); 
						    if(document.getElementById("tabla_selector") !=null){
						    	parent.removeChild(document.getElementById("tabla_selector"));
						    }
						   }
						}else{
						   row.onclick = function(e) {
						     var casilla = 'cbox' + this.rowIndex;
						    if(Prototype.Browser.IE){
								elementoId = event.srcElement.id;
								teclaShift = event.shiftKey;
							}else{
								element = Event.element(e);
								elementoId= element.id;
							}
						     if(elementoId == '' || document.getElementById(elementoId).type != 'checkbox') {
						       document.getElementById(casilla).checked = !document.getElementById(casilla).checked;
						     }
					    }
						}
						row.onmouseover = function() {actFoco(this); this.className='fila_selector_foco';}
						if (i % 2 == 0) {
						 row.className = "fila_selector_par";
						 row.onmouseout = function() {this.className='fila_selector_par';}
						} else {
						 row.className = "fila_selector_impar";
						 row.onmouseout = function() {this.className='fila_selector_impar';}
						} 
				}	
		  if(multiple == true){
		    //Pongo el checkbox para selector multiple.
		    if(i > 0){
		      cell = document.createElement("TD");
		      //cell.style.width = "0px";
		      cell.style.borderTop = "1px solid Gray";
						  cell.style.borderLeft = "1px solid Gray";
						  box = document.createElement('INPUT');
						  box.type = 'CHECKBOX';
						  box.id = 'cbox' + i;
						  box.className = 'check_selector_multiple';
						  cell.appendChild(box); 
						  row.appendChild(cell);
						}
		  }
				linea = lineas[i].split('|');
				for (var j=0; j < linea.length; j++) {
					if (linea[0].length > 0) {		
		    		 cell = document.createElement("TD");
								 cell.style.borderTop = "1px solid Gray";
								 cell.style.borderRight = "1px solid Gray";
								 if (j==0) cell.style.borderLeft = "1px solid Gray";
								 if (linea[j].charAt(0) == '$') {
								  cell.style.display='none';
								  text = document.createTextNode(linea[j].substring(1,linea[j].length));
								 } else {
								  text = document.createTextNode(linea[j]);
								 }
								 try {
								  cell.appendChild(text);
								 } catch(a) {
									  alert(text.toString());
								 }
					 		 row.appendChild(cell);
					}
		  }
		  tablaBody.appendChild(row);
	}
	tabla.appendChild(tablaBody);
	parent.appendChild(tabla);
	//Asignamos el valor de la variable global que contendr? la funci?n a ejecutar al pulsar el link 'Validar'.
	if(multiple == true){
	  onSelectMultiple = onSelect;
	}else{
	  if (lineas.length-1 <= 2) {
		 	onSelect(document.getElementById("tr1"));
			 reset_selector(); 
			 if(document.getElementById("tabla_selector")!= null){
			 	parent.removeChild(document.getElementById("tabla_selector"));
			 }
			 return false;
		 }
	}	
	
	//Modificado
	//document.getElementById('panel_selector').style.height=lineas.length*20;
	
	focoFilaSelector();
	return true;
}
 
 var posActualSelector = 1;
 
 function focoFilaSelector(){
 	var fila = "tr"+posActualSelector;
 	document.getElementById(fila).className='fila_selector_foco';
	document.getElementById(fila).scrollIntoView(false); 
 }
 
 function noFocoFilaSelector () {
 		var fila = "tr"+posActualSelector;
			if (posActualSelector % 2 == 0) {
			 document.getElementById(fila).className='fila_selector_par';
			} else {
			 document.getElementById(fila).className='fila_selector_impar';
			}  		
 }
 
 function keySelectorEnter(selector_activo, e) {
 	var elemento = Event.element(e);
 	tecla = (document.all) ? event.keyCode : e.which;
	if (selector_activo && !selector_activo()) {
		keySelector();
		return;
	}
	if (document.getElementById("tabla_selector") == null){
	  	if (tecla==13 && eval(elemento.id+'_selector') != null) {
	  		var fun = eval(elemento.id+'_selector_enter_XBrowser');
		   	fun(elemento);
			return true;
	  	
	  		//ANTES EMULABAMOS LA TECLA F2
		   //var evObj = null;
		   //if(Prototype.Browser.IE){
		   	//	event.keyCode=113;
			//	evObj=event;
		  // }else{
			//   	if( window.KeyEvent ) {
			//	  evObj = document.createEvent('KeyEvents');
			//	  evObj.initKeyEvent( 'keydown', true, true, window, false, false, false, false, 113, 0 );
			//	} else {
				//	if(Prototype.Browser.WebKit){
						//var fun = eval(elemento.id+'_selector_enter_XBrowser');
		   				//fun(elemento);
						//return true;
				//	}else{
				 // 		evObj = document.createEvent('UIEvents');
				 // 		evObj.initUIEvent( 'keydown', true, true, window, 1 );
				 // 		evObj.keyCode = 113; 
				//	}
				//}
		  // }
		   //	var fun = eval(elemento.id+'_selector');
		   //	fun(evObj);
		   	//return true;
	  	}
	}else{
		keySelector(tecla,e);
	}
 }
 
	function keySelector(tecla,e){
	 var tabla = document.getElementById("tabla_selector");	 
	 if (tabla==null){
	 	return true;
	 } else {
	 	if (tabla.style.visibility=='hidden') {
	 		return true;
	 	}
	 }
	// alert(tecla);
	 if (tabla.rows.length>2) {
				if (tecla==38) { //ARRIBA
						if (posActualSelector>1) {
								noFocoFilaSelector();
								posActualSelector--;
								focoFilaSelector();
						}
						e.cancelBubble=true;
						return false;
				} else if (tecla==40) { //ABAJO
						if (posActualSelector < tabla.rows.length-1) {
								noFocoFilaSelector();
								posActualSelector++;
								focoFilaSelector();
						}
						e.cancelBubble=true;
						return false;
				} else if (tecla==13) {
								if (onSelectMultiple=="") {
									  var fila = "tr"+posActualSelector;
									  	if(Prototype.Browser.IE){
									  		document.getElementById(fila).click();
										}else{
											document.getElementById(fila).simulate('click');
										}
									  return false;
								} else {
							  	if(Prototype.Browser.IE){
							  		document.getElementById("linkAccion").click();
								}else{
									document.getElementById("linkAccion").simulate('click');
								}
							  return false;
								}
				} else if (tecla==32) {
								if (onSelectMultiple!="") {
							  var fila = "tr"+posActualSelector;
								if(Prototype.Browser.IE){
									document.getElementById(fila).click();
								}else{
									document.getElementById(fila).simulate('click');
								}
							  return false;
								}
				}
		}
		return true;
	}

	function actFoco (fila) {
			noFocoFilaSelector();
			var tmp = fila.id;
			tmp = tmp.substring(2);
			posActualSelector=tmp;
	}
 
 function crearPanelCAB() {
 	if (document.getElementById("panel_selector_CAB")) document.body.removeChild(document.getElementById("panel_selector_CAB"));
 
	 D = document.createElement("div");
	 D.id='panel_selector_CAB';
	 D.style.visibility='visible';
	 D.style.position="absolute";
	 D.style.height='15';
	 D.style.zindex='999';
	 
	 D.className="divSelectorCAB";	 
	 document.body.appendChild(D); 
 }

 function crearTabalCAB(multiple) {
 	if (document.getElementById("tabla_selector_CAB")) document.getElementById("panel_selector_CAB").removeChild(document.getElementById("tabla_selector_CAB"));
	 var tablaSelector = document.getElementById("tabla_selector");
		tabla = document.createElement("TABLE");
		tabla.id = "tabla_selector_CAB";
		tabla.className="tabla_selectorCAB";
		tabla.cellSpacing=tablaSelector.cellSpacing;
		tabla.cellPadding=tablaSelector.cellPadding;
		tabla.width="100%";
		tabla.heignt="15px";
		tablaBody = document.createElement("TBODY");	 

  row = document.createElement("TR");
		row.id = "trCab";
	 row.className="fila_selector_cabecera";
		if(multiple == true){ //creamos un checkbox para seleccion multiple de opciones	 	
		//Pongo el checkbox para selector multiple.
		    cell = document.createElement("TD");
		    //cell.style.width = "0px";
						cell.style.borderTop = "1px solid Gray";
						cell.style.borderLeft = "2px solid Gray";
						box = document.createElement('INPUT');
						box.type = 'CHECKBOX';
						box.id = 'cbox_multiple';
						box.className = 'check_selector_multiple';
						box.onclick = function(){
						    var fin = false;
						    var i = 1;
						    while(fin == false){
						      try{
						        if(this.checked == true){
						          document.getElementById('cbox' + i).checked = true;
						        }else{
						          document.getElementById('cbox' + i).checked = false;
						        }
						        i++;
						      }catch(a){
						        fin = true;
						      }
						    }
						}//function
						cell.appendChild(box);
						row.appendChild(cell);
		}
	 for (i=0;i<tablaSelector.rows[0].cells.length;i++) {	 			
					if (tablaSelector.rows[0].cells[0].innerHTML.length > 0) {		
									linea = tablaSelector.rows[0].cells[i];
		    		 cell = document.createElement("TD");
								 cell.style.borderTop = linea.style.borderTop;
								 cell.style.borderRight = linea.style.borderRight;
								 cell.style.borderLeft = linea.style.borderLeft;
								 cell.style.display = linea.style.display;
								 text = document.createTextNode(linea.innerHTML);
								 try {
									 cell.appendChild(text);
								 } catch(a) {
								 		alert(a);
									  alert(text.toString());
								 }
					 		 row.appendChild(cell);
					}
	 }
	  
	 tablaBody.appendChild(row);
	 tabla.appendChild(tablaBody);
	 document.getElementById("panel_selector_CAB").appendChild(tabla);			 
 	if (document.getElementById("panel_selector_CAB")) {
	 	document.getElementById("panel_selector_CAB").style.top=document.getElementById('panel_selector').style.top;
	 	document.getElementById("panel_selector_CAB").style.left=document.getElementById('panel_selector').style.left;
 	}

 }
 
 
 
var rh;
var fr;
var ds;
var hs;

function syncScroll(e){
	//Modificado
  //hs.scrollLeft = ds.scrollLeft;
}

function syncResize(e) {
  hs.style.width = ds.offsetWidth-(ds.offsetWidth - ds.clientWidth);		
  for( i =0; i < rh.childNodes.length; i++ ) {
  			try {
   	  rh.childNodes[i].width = fr.childNodes[i].offsetWidth-4;
			  } catch(z) {}
  } 
}

function initCabecera() {
  rh = document.getElementById("trCab");
  fr = document.getElementById("tr0");
  ds = document.getElementById("panel_selector");
  hs = document.getElementById("panel_selector_CAB");

  hs.style.top = ds.offsetTop+2;
  hs.style.left = ds.offsetLeft+2;
  hs.style.width =  ds.offsetWidth-1;
  
  hs.style.visibility = 'visible';
	//Modificado
  //ds.onscroll=syncScroll;
  syncResize();
}

function crearPanelMultiple() {
  if (document.getElementById("panel_selector_multiple")) document.body.removeChild(document.getElementById("panel_selector_multiple"));
 
	 D = document.createElement("div");
	 D.id='panel_selector_multiple';
	 D.style.visibility='visible';
	 D.style.display='';
	 D.style.position="absolute";
	 D.style.height='10';
	 D.style.zindex='999';
	 
	 D.className="divSelectorCAB";	 
	 document.body.appendChild(D); 
}

function crearTablaMultiple() {
 	if (document.getElementById("tabla_selector_multiple")) document.getElementById("panel_selector_multiple").removeChild(document.getElementById("tabla_selector_multiple"));
	 tabla = document.createElement("TABLE");
		tabla.id = "tabla_selector_multiple";
		tabla.className="tabla_selector_multiple";
		tabla.border = 0;
		tabla.cellSpacing=0;
		tabla.cellPadding=0;
		tabla.width="100%";
		tabla.heignt="15px";
		tablaBody = document.createElement("TBODY");	 

  row = document.createElement("TR");
		row.id = "trMultiple";
	 
	 cell = document.createElement("TD");
	 cell.align='center';
	 tabla_boton = document.createElement("TABLE");
	 tabla_boton.id = 'tabla_boton';
		tabla_boton.cellSpacing=0;
		tabla_boton.cellPadding=0;
	 tabla_boton.className = 'tablaBoton';
	 tablaBody_boton = document.createElement("TBODY");
	 fila_boton = document.createElement("TR");
	 celda_boton = document.createElement("TD");
	 celda_boton.id = 'celda_boton';
	 celda_boton.className = 'celdaBoton';
		enlace = document.createElement("A");
		enlace.id = "linkAccion";
		enlace.href="#";
		enlace.className = 'textoBoton';
		enlace.onclick = function(){
		  var vector = new Array(); k = 0;
		  var lista = document.getElementById("tabla_selector");
		  for (i=1;i<lista.rows.length;i++){
		    if(document.getElementById('cbox' + i).checked){
		      vector[k] = lista.rows[i];
		      k++;
		    }
		  }
		  onSelectMultiple(vector);
		  reset_selector(); 
		};
		text = document.createTextNode('Aceptar');
		try {
		   enlace.appendChild(text);
		   celda_boton.appendChild(enlace);
		   fila_boton.appendChild(celda_boton);
		   tablaBody_boton.appendChild(fila_boton);
		   tabla_boton.appendChild(tablaBody_boton);
		   cell.appendChild(tabla_boton);
		} catch(a) {
		   alert(a);
		}
		row.appendChild(cell);
			 	 
	 tablaBody.appendChild(row);
	 tabla.appendChild(tablaBody);
	 if (document.getElementById("panel_selector_multiple")){
	   document.getElementById("panel_selector_multiple").appendChild(tabla);		
	   posPanelMultiple();
	 }	 
 }
 
 function posPanelMultiple(){
   if (document.getElementById("panel_selector_multiple")) {
     document.getElementById("panel_selector_multiple").style.top=document.getElementById('panel_selector').offsetTop + document.getElementById("panel_selector").offsetHeight;
	 	  document.getElementById("panel_selector_multiple").style.left=document.getElementById('panel_selector').style.left;
 	   document.getElementById("panel_selector_multiple").style.width=document.getElementById('panel_selector').style.width;
 	 } 
 }

function addEvento( obj, type, fn ){  
		if (obj.addEventListener){  
				obj.addEventListener( type, fn, false ); 
		} else if (obj.attachEvent) {  
				obj["e"+type+fn] = fn;  
				obj[type+fn] = function(){ obj["e"+type+fn]( window.event ); }  
				obj.attachEvent( "on"+type, obj[type+fn] );  
		}  
}  

addEvento(window, "resize", recalculaPos);

function recalculaPos (e) {
	 var lista = lista_Btn.split(";");
	 for (cont=0;cont<lista.length;cont++) {
		 	pos_btn(document.getElementById(lista[cont].substring(0,lista[cont].length-4)));		 	
	 }
	 if ((document.getElementById("panel_selector")) && (document.getElementById("panel_selector").style.visibility!='hidden') && (selector_actual!="")) {	 	
	 	pos_img(document.getElementById(selector_actual));
	 	pos_panel(document.getElementById(selector_actual));
	 	initCabecera();
	 	if (document.getElementById("panel_selector_multiple")) posPanelMultiple();
	 }    	 
	 
}

function recalcAltoPanel(){
	var panel = document.getElementById("panel_selector");
	var tabla = document.getElementById("tabla_selector");
	 if ((document.getElementById("panel_selector")) && (document.getElementById("panel_selector").style.visibility!='hidden') && (selector_actual!="")) {	 	
			if (tabla.offsetHeight<panel.offsetHeight) {
				panel.style.height = tabla.offsetHeight+5;
			}
		}
		if (document.getElementById("panel_selector_multiple")) posPanelMultiple();
}
