// LIB JS VICTOR RODRíGUEZ GIL 
// 2004-06-13
//
// v2.0
//
// NO SE PUEDE COPIAR NI CAMBIAR NI TOCAR NI HACER NADA CON ESTE CODIGO
// A MENOS QUE YO, VÍCTOR RODRÍGUEZ GIL, NO DIGA LO CONTRARIO
//
// HAY TROZOS DE CÓDIGO DE OTRA GENTE, CONVENIENTEMENTE MARCADOS,
// ÉSTOS SON PROPIEDAD DE SUS AUTORES, NO TIENEN NADA QUE VER CONMIGO Y SU
// USO SE RIGE POR SUS LICENCIAS

var ie = document.all;
var ns = document.layers;
var ns6 = document.getElementById&&!document.all;








//<!--
// Ultimate client-side JavaScript client sniff. Version 3.03
// (C) Netscape Communications 1999-2001.  Permission granted to reuse and distribute.
// Revised 17 May 99 to add is_nav5up and is_ie5up (see below).
// Revised 20 Dec 00 to add is_gecko and change is_nav5up to is_nav6up
//                      also added support for IE5.5 Opera4&5 HotJava3 AOLTV
// Revised 22 Feb 01 to correct Javascript Detection for IE 5.x, Opera 4, 
//                      correct Opera 5 detection
//                      add support for winME and win2k
//                      synch with browser-type-oo.js
// Revised 26 Mar 01 to correct Opera detection
// Revised 02 Oct 01 to add IE6 detection

// Everything you always wanted to know about your JavaScript client
// but were afraid to ask. Creates "is_" variables indicating:
// (1) browser vendor:
//     is_nav, is_ie, is_opera, is_hotjava, is_webtv, is_TVNavigator, is_AOLTV
// (2) browser version number:
//     is_major (integer indicating major version number: 2, 3, 4 ...)
//     is_minor (float   indicating full  version number: 2.02, 3.01, 4.04 ...)
// (3) browser vendor AND major version number
//     is_nav2, is_nav3, is_nav4, is_nav4up, is_nav6, is_nav6up, is_gecko, is_ie3,
//     is_ie4, is_ie4up, is_ie5, is_ie5up, is_ie5_5, is_ie5_5up, is_ie6, is_ie6up, is_hotjava3, is_hotjava3up,
//     is_opera2, is_opera3, is_opera4, is_opera5, is_opera5up
// (4) JavaScript version number:
//     is_js (float indicating full JavaScript version number: 1, 1.1, 1.2 ...)
// (5) OS platform and version:
//     is_win, is_win16, is_win32, is_win31, is_win95, is_winnt, is_win98, is_winme, is_win2k
//     is_os2
//     is_mac, is_mac68k, is_macppc
//     is_unix
//     is_sun, is_sun4, is_sun5, is_suni86
//     is_irix, is_irix5, is_irix6
//     is_hpux, is_hpux9, is_hpux10
//     is_aix, is_aix1, is_aix2, is_aix3, is_aix4
//     is_linux, is_sco, is_unixware, is_mpras, is_reliant
//     is_dec, is_sinix, is_freebsd, is_bsd
//     is_vms
//
// See http://www.it97.de/JavaScript/JS_tutorial/bstat/navobj.html and
// http://www.it97.de/JavaScript/JS_tutorial/bstat/Browseraol.html
// for detailed lists of userAgent strings.
//
// Note: you don't want your Nav4 or IE4 code to "turn off" or
// stop working when new versions of browsers are released, so
// in conditional code forks, use is_ie5up ("IE 5.0 or greater") 
// is_opera5up ("Opera 5.0 or greater") instead of is_ie5 or is_opera5
// to check version in code which you want to work on future
// versions.

// convert all characters to lowercase to simplify testing
var agt=navigator.userAgent.toLowerCase();

// *** BROWSER VERSION ***
// Note: On IE5, these return 4, so use is_ie5up to detect IE5.
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);

// Note: Opera and WebTV spoof Navigator.  We do strict client detection.
// If you want to allow spoofing, take out the tests for opera and webtv.
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
	       && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
	       && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav2 = (is_nav && (is_major == 2));
var is_nav3 = (is_nav && (is_major == 3));
var is_nav4 = (is_nav && (is_major == 4));
var is_nav4up = (is_nav && (is_major >= 4));
var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
				  (agt.indexOf("; nav") != -1)) );
var is_nav6 = (is_nav && (is_major == 5));
var is_nav6up = (is_nav && (is_major >= 5));
var is_gecko = (agt.indexOf('gecko') != -1);


var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie3    = (is_ie && (is_major < 4));
var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
var is_ie4up  = (is_ie && (is_major >= 4));
var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);

// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
// or if this is the first browser window opened.  Thus the
// variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.
var is_aol   = (agt.indexOf("aol") != -1);
var is_aol3  = (is_aol && is_ie3);
var is_aol4  = (is_aol && is_ie4);
var is_aol5  = (agt.indexOf("aol 5") != -1);
var is_aol6  = (agt.indexOf("aol 6") != -1);

var is_opera = (agt.indexOf("opera") != -1);
var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);

var is_webtv = (agt.indexOf("webtv") != -1); 

var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1)); 
var is_AOLTV = is_TVNavigator;

var is_hotjava = (agt.indexOf("hotjava") != -1);
var is_hotjava3 = (is_hotjava && (is_major == 3));
var is_hotjava3up = (is_hotjava && (is_major >= 3));

// *** JAVASCRIPT VERSION CHECK ***
var is_js;
if (is_nav2 || is_ie3) is_js = 1.0;
else if (is_nav3) is_js = 1.1;
else if (is_opera5up) is_js = 1.3;
else if (is_opera) is_js = 1.1;
else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;
else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;
else if (is_hotjava3up) is_js = 1.4;
else if (is_nav6 || is_gecko) is_js = 1.5;
// NOTE: In the future, update this code when newer versions of JS
// are released. For now, we try to provide some upward compatibility
// so that future versions of Nav and IE will show they are at
// *least* JS 1.x capable. Always check for JS version compatibility
// with > or >=.
else if (is_nav6up) is_js = 1.5;
// NOTE: ie5up on mac is 1.4
else if (is_ie5up) is_js = 1.3

// HACK: no idea for other browsers; always check for JS version with > or >=
else is_js = 0.0;

// *** PLATFORM ***
var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
// NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
//        Win32, so you can't distinguish between Win95 and WinNT.
var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));

// is this a 16 bit compiled version?
var is_win16 = ((agt.indexOf("win16")!=-1) || 
		(agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) || 
		(agt.indexOf("windows 16-bit")!=-1) );  

var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
		(agt.indexOf("windows 16-bit")!=-1));

var is_winme = ((agt.indexOf("win 9x 4.90")!=-1));
var is_win2k = ((agt.indexOf("windows nt 5.0")!=-1));

// NOTE: Reliable detection of Win98 may not be possible. It appears that:
//       - On Nav 4.x and before you'll get plain "Windows" in userAgent.
//       - On Mercury client, the 32-bit version will return "Win98", but
//         the 16-bit version running on Win98 will still return "Win95".
var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
var is_win32 = (is_win95 || is_winnt || is_win98 || 
		((is_major >= 4) && (navigator.platform == "Win32")) ||
		(agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));

var is_os2   = ((agt.indexOf("os/2")!=-1) || 
		(navigator.appVersion.indexOf("OS/2")!=-1) ||   
		(agt.indexOf("ibm-webexplorer")!=-1));

var is_mac    = (agt.indexOf("mac")!=-1);
// hack ie5 js version for mac
if (is_mac && is_ie5up) is_js = 1.4;
var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) || 
			    (agt.indexOf("68000")!=-1)));
var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) || 
			    (agt.indexOf("powerpc")!=-1)));

var is_sun   = (agt.indexOf("sunos")!=-1);
var is_sun4  = (agt.indexOf("sunos 4")!=-1);
var is_sun5  = (agt.indexOf("sunos 5")!=-1);
var is_suni86= (is_sun && (agt.indexOf("i86")!=-1));
var is_irix  = (agt.indexOf("irix") !=-1);    // SGI
var is_irix5 = (agt.indexOf("irix 5") !=-1);
var is_irix6 = ((agt.indexOf("irix 6") !=-1) || (agt.indexOf("irix6") !=-1));
var is_hpux  = (agt.indexOf("hp-ux")!=-1);
var is_hpux9 = (is_hpux && (agt.indexOf("09.")!=-1));
var is_hpux10= (is_hpux && (agt.indexOf("10.")!=-1));
var is_aix   = (agt.indexOf("aix") !=-1);      // IBM
var is_aix1  = (agt.indexOf("aix 1") !=-1);    
var is_aix2  = (agt.indexOf("aix 2") !=-1);    
var is_aix3  = (agt.indexOf("aix 3") !=-1);    
var is_aix4  = (agt.indexOf("aix 4") !=-1);    
var is_linux = (agt.indexOf("inux")!=-1);
var is_sco   = (agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1);
var is_unixware = (agt.indexOf("unix_system_v")!=-1); 
var is_mpras    = (agt.indexOf("ncr")!=-1); 
var is_reliant  = (agt.indexOf("reliantunix")!=-1);
var is_dec   = ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) || 
		(agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) || 
		(agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1)); 
var is_sinix = (agt.indexOf("sinix")!=-1);
var is_freebsd = (agt.indexOf("freebsd")!=-1);
var is_bsd = (agt.indexOf("bsd")!=-1);
var is_unix  = ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux || 
		is_sco ||is_unixware || is_mpras || is_reliant || 
		is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);

var is_vms   = ((agt.indexOf("vax")!=-1) || (agt.indexOf("openvms")!=-1));

//--> end hide JavaScript

/////Fin codigo de Netscape




function showBorder(id) {
  var el = document.getElementById(id);
  //el.style.borderColor = el.style.color;
  el.style.borderColor = 'red';
}
function hideBorder(id) {
  var el = document.getElementById(id);
  //el.style.borderColor = el.style.backgroundColor;
  el.style.borderColor = 'white';
}
function toggleBorder(id) {
  var el = document.getElementById(id);
  if (el.style.borderColor == el.style.backgroundColor){
    showBorder(id);
  }
  else{
    hideBorder(id);
  }
}
function borderStyleOn(o){
  o.style.borderStyle = 'inset';
  o.borderStyle='on';
}
function borderStyleOff(o){
  o.style.borderStyle = 'outset';
  o.borderStyle='off';
}
function toggleBorderStyle(o){
  if(o.borderStyle == 'on')
    borderStyleOff(o);
  else
    borderStyleOn(o);
}
function cadenaVacia(texto){
  if (texto == null) return true;
  if (texto == '') return true;
  return false;
}

function confirmarLink(link, texto){
  if (confirm(texto)){
    redirect(link);
  }
}
function confirmaLink(l, t){
  return confirmarLink(l, t);
}
function redirect(link){
  if(window.location){
    window.location=link;
  }
  else{
    document.location.href=link;
  }
}
function link(l){
  redirect(l);
}

function nuevaVentana(link, params){
  window.open(link,'',params);
}

function nuevaVentanaConfirmar(link, params,texto){
  if (confirm(texto)){
    window.open(link,'',params);
  }
}

function ventanaNueva(link, params){
  nuevaVentana(link,params);
}

function getStyle(selector){
  var sheetList = document.styleSheets;
  var ruleList;
  var i, j;
  for (i=sheetList.length-1; i >= 0; i--){
    if (sheetList[i].cssRules)
      ruleList = sheetList[i].cssRules;
    else if(sheetList[i].rules)
      ruleList = sheetList[i].rules;
    else 
      return null;
    if (ruleList!=null){
      for (j=0; j<ruleList.length; j++){
	if (ruleList[j].selectorText == selector){
	  return ruleList[j].style;
	}   
      }
    }
  } 
  return null;
}

function setStyle(selector,style,value){
  var sheetList = document.styleSheets;
  var ruleList;
  var i, j;
  /* look through stylesheets in reverse order that they appear in the document */
  for (i=sheetList.length-1; i >= 0; i--){
    if (sheetList[i].cssRules)
      ruleList = sheetList[i].cssRules;
    else if(sheetList[i].rules)
      ruleList = sheetList[i].rules;
    else 
      return null;
    if (ruleList!=null){
      for (j=0; j<ruleList.length; j++){
	if (ruleList[j].selectorText == selector){
	  //ruleList[j].style=style;
	  eval('ruleList[j].style.'+style+'="'+value+'"');
	}   
      }
    }
  }
}

function fullyQualifyUrl(url,host,port,protocol){
  if(cadenaVacia(protocol)) protocol="http";
  if(cadenaVacia(port)) protocol="80";
  var ret = protocol+"://"+host+":"+port+"/"+url;
  return ret;
}

function checkearTodos(){
  var inputs = document.getElementsByTagName('input');
  for (var i=0;i<inputs.length;i++){
    if(inputs[i].type=='checkbox'){
      inputs[i].checked='checked';
    }
  }
}

function descheckear(id){
  var el = document.getElementById(id);
  el.checked='';
}

function checkear(id){
  var el = document.getElementById(id);
  el.checked='checked';
}

function descheckearTodos(){
  var inputs = document.getElementsByTagName('input');
  for (var i=0;i<inputs.length;i++){
    if(inputs[i].type=='checkbox'){
      inputs[i].checked='';
    }
  }
}

function checkearTodosNombre(n){
  var inputs = document.getElementsByTagName('input');
  for (var i=0;i<inputs.length;i++){
    if(inputs[i].type=='checkbox' && inputs[i].name==n){
      inputs[i].checked='checked';
    }
  }
}

function descheckearTodosNombre(n){
  var inputs = document.getElementsByTagName('input');
  for (var i=0;i<inputs.length;i++){
    if(inputs[i].type=='checkbox' && inputs[i].name==n){
      inputs[i].checked='';
    }
  }
}

function getElements(name,tag){
  var a=document.getElementsByName(name);
  var t=tag;
  if (a.length>0){
    return a;
  }
  if (t==null || t==""){
    t='div';
  }
  a=document.getElementsByTagName(t);
  var ret=new Array;
  for (var i=0;i<a.length;i++){
    if(a[i].name==name) ret.push(a[i]);
  }
  return ret;
}

function showName(name,tag){
  if (name==null) {return;}
  var a=getElements(name,tag);
  for (var i=0;i<a.length;i++){
    el=a[i];
    el.style.display = 'block';
  }
}
function hideName(name,tag){
  if (name==null) {return;}
  var a=getElements(name,tag);
  for (var i=0;i<a.length;i++){
    el=a[i];
    el.style.display = 'none';
  }
}
function toggleName(name,tag){
  if (name==null) {return;}
  var a=getElements(name,tag);
  for (i=0;i<a.length;i++){
    el=a[i];
    if (el.style.display == 'block'){
      el.style.display = 'none';
    }
    else{
      el.style.display = 'block';
    }
  }
}

function toggleInlineName(name,tag){
  if (name==null) {return;}
  var a=getElements(name,tag);
  for (i=0;i<a.length;i++){
    el=a[i];
    if (el.style.display == 'inline'){
      el.style.display = 'none';
    }
    else{
      el.style.display = 'inline';
    }
  }
}

function show(id) {
  if (id==null) {return;}
  var el = document.getElementById(id);
  if (el==null) {return;}
  el.style.display = 'block';
  return el;
}

function showInline(id) {
  if (id==null) {return}
  var el = document.getElementById(id);
  el.style.display = 'inline';
  return el;
}

function hide(id) {
  if (id==null) {return}
  var el = document.getElementById(id);
  el.style.display = 'none';
  return el;
}

function toggle(id) {
  var el = document.getElementById(id);
  if (el.style.display == 'block'){
    hide(id);
  }
  else{
    show(id);
  }
}

function toggle2(id) {
  var el = document.getElementById(id);
  if (el.style.display == 'none'){
    show(id);
  }
  else{
    hide(id);
  }
}

function toggleInline(id) {
  var el = document.getElementById(id);
  if (el.style.display == 'block'){
    hide(id);
  }
  else {
    showInline(id);
  }
}

function enable(id){
  var el = document.getElementById(id);
  changeElementAbility(el,true,true);
  return el;
}

function disable(id){
  var el = document.getElementById(id);
  changeElementAbility(el,true,false);
  return el;
}

function toggleDisabled(id)
{
  var elm = document.getElementById(id);
  changeElementAbility(elm, true, elm.disabled);
}

function changeElementAbility(elm, boolRecursive, boolEnable)
{
  elm.disabled = !boolEnable;
  if(elm.childNodes == null) return;
  for(var i = 0; i < elm.childNodes.length; i++)
    {
      elm.childNodes[i].disabled = !boolEnable;
      if(elm.childNodes.item(i).childNodes != null && boolRecursive)
	changeElementAbility(elm.childNodes.item(i), true, boolEnable);
    }
}




//////POSITION

function getLeft(el){
  var xPos = el.offsetLeft;
  return xPos;
}

function getRight(el){
  return getLeft(el)+el.offsetWidth;
}

function getTop(el){
  var yPos = el.offsetTop;
  return yPos;
}

function getBottom(el){
  return getTop(el)+el.offsetHeight;
}

function getRealLeft(el) {
  var xPos = el.offsetLeft;
  var tempEl = el.offsetParent;
  while (tempEl != null) {
    xPos += tempEl.offsetLeft;
    tempEl = tempEl.offsetParent;
  }
  return xPos;
}

function getRealTop(el) {
  var yPos = el.offsetTop;
  var tempEl = el.offsetParent;
  while (tempEl != null) {
    yPos += tempEl.offsetTop;
    tempEl = tempEl.offsetParent;
  } 
  return yPos;
} 

function getRealBottom(el){
  return getRealTop(el) + el.offsetHeight;
}

function getRealRight(el){
  return getRealTop(el) + el.offsetWidth;
}

function getPageBottom(){
  if (document.body.clientHeight) return document.body.clientHeight;
  if (self.innerHeight) return self.innerHeight;
  return 0;
}


function setBottom(el,bot){
  var top = bot - el.offsetHeight;
  setTop(el,top);
}

function setTop(el,top){
  el.style.position = 'absolute';
  el.style.top = top;
}

function setLeft(el,l){
  el.style.position = 'absolute';
  el.style.left = l;
}

function adjustBottomToPage(el){
  if (getRealBottom(el)>getPageBottom()){
    setBottom(el,getPageBottom());
  }
}

function getMouseY(e){
  if (e==null) {return};
  return ns6? pageYOffset + e.clientY : document.body.scrollTop + e.clientY;
}

function getMouseX(e){
  if (e==null) {return};
  return ns6? pageXOffset + e.clientX : document.body.scrollLeft + e.clientX;
}

function setPos(id,left,top){
  if (id==null) {return;}
  var el = document.getElementById(id);
  if (left != null) {setLeft(el,left);}
  if (top != null) {setTop(el,top);}
  return el;
}
//////END POSITION



/////COOOKIES

var expDays = 3000;
var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function color(){
  var favColor = GetCookie('color');
  if (favColor == null) {
    favColor = prompt("What is your favorite background color?");
    SetCookie('color', favColor, exp);
  }
  document.bgColor=favColor;
  return favColor;
}
function set(){
  favColor = prompt("What is your favorite background color?");
  SetCookie ('color', favColor, exp);
}
function getCookieVal (offset) {  
  var endstr = document.cookie.indexOf (";", offset);  
  if (endstr == -1)    
    endstr = document.cookie.length;  
  return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {  
  var arg = name + "=";  
  var alen = arg.length;  
  var clen = document.cookie.length;  
  var i = 0;  
  while (i < clen) {    
    var j = i + alen;    
    if (document.cookie.substring(i, j) == arg)      
      return getCookieVal (j);    
    i = document.cookie.indexOf(" ", i) + 1;    
    if (i == 0) break;   
  }  
  return null;
}
function SetCookie (name, value) {  
  var argv = SetCookie.arguments;  
  var argc = SetCookie.arguments.length;  
  var expires = (argc > 2) ? argv[2] : null;  
  var path = (argc > 3) ? argv[3] : null;  
  var domain = (argc > 4) ? argv[4] : null;  
  var secure = (argc > 5) ? argv[5] : false;  
  document.cookie = name + "=" + escape (value) + 
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
    ((path == null) ? "" : ("; path=" + path)) +  
    ((domain == null) ? "" : ("; domain=" + domain)) +    
    ((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {  
  var exp = new Date();  
  exp.setTime (exp.getTime() - 1);  
  var cval = GetCookie (name);  
  document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

/////END COOOKIES


///VENTANA

var idVentanaVisible;

function muestraVentana(id,x,y){
  var v;
  var idVentana;
  if (x == null) { x=100;}
  if (y == null) { y=20;}
  idVentana = 'ventana_' + id;
  ocultaVentana(idVentanaVisible);
  if ((ie||ns6) && document.getElementById){
    v = document.getElementById(idVentana);
    v.style.position = 'absolute';
    v.style.left=ns6? pageXOffset + x : document.body.scrollLeft + x;
    v.style.top=ns6? pageYOffset + y : document.body.scrollTop + y;
    v.style.display='block';
    idVentanaVisible = id;
  }
}

function ocultaVentana(id){
  var v;
  var idVentana;
  if (cadenaVacia(id)) return;
  idVentana = 'ventana_' + id;
  v = document.getElementById(idVentana);
  v.style.display='none';
}


function llenaVentanaTitulo(id,titulo){
  var el;
  el = document.getElementById('ventana_titulo_' + id);
  el.innerHTML = textoLeer(titulo);
}


//////END VENTANA





//////MENU
var idVisibleMenu = new Array();
var levelVisibleMenu = new Array();
var idTimer;

//if (window.Event){document.captureEvents(Event.MOUSEUP);}
//document.onmouseup = documentMouseUpHandler;

function hideVisibleMenu() {
  if(Array.pop){
    hide(idVisibleMenu.pop());
    levelVisibleMenu.pop();
  }
  else{
    hide(idVisibleMenu[idVisibleMenu.length-1]);
    idVisibleMenu=idVisibleMenu.slice(0,-1);
    levelVisibleMenu=levelVisibleMenu.slice(0,-1);
  }
}
function documentMouseUpHandler(e){
  if (!ie){
    if (e.which=='1'){
      if(e.target.id.indexOf('enuCabecera')>0) return true;
      hideVisibleMenus(0);
      routeEvent(e);
      return true;
    }
    else { //boton derecho?
      return true;
    }
  }
  else{
    if(event.srcElement.id.indexOf('enuCabecera')>0) return true;
    hideVisibleMenus(0);
    //routeEvent(e);
    return true;
  }
  return true;
}
function menuMouseOverHandler(id,ent,e,l){
  borderStyleOn(ent);
  showMenu(id,ent,e,l);
}
function menuMouseOutHandler(id,ent,e,l){
  borderStyleOff(ent);
}

function hideVisibleMenus(l){
  if (l==null) l=0;
  while (levelVisibleMenu[levelVisibleMenu.length-1]>=l){
    hideVisibleMenu();
  }
}

function showMenu(id,ent,e,l){
  window.clearTimeout(idTimer);
  var el=document.getElementById(id);
  if (l==0){
    hideVisibleMenus(l);
    setPos(id,getRealLeft(ent),getRealBottom(ent));
    //setPos(id,getMouseX(e),getMouseY(e));
    show(id);
    if (Array.push){
      idVisibleMenu.push(id);
      levelVisibleMenu.push(l);
    }
    else{
      idVisibleMenu[idVisibleMenu.length]=id;
      levelVisibleMenu[levelVisibleMenu.length]=l;
    }
    idTimer = window.setTimeout('hideVisibleMenus(0)',3000);
  }
  else{
    hideVisibleMenus(l);
    //setPos(id,getRight(ent),getTop(ent));
    setPos(id,getLeft(ent),getBottom(ent));
    //setPos(id,getMouseX(e),getMouseY(e));
    show(id);
    if (Array.push){
      idVisibleMenu.push(id);
      levelVisibleMenu.push(l);
    }
    else{
      idVisibleMenu[idVisibleMenu.length]=id;
      levelVisibleMenu[levelVisibleMenu.length]=l;
    }
    idTimer = window.setTimeout('hideVisibleMenus(0)',3000);
  }
}

function toggleMenu(id,ent,e,l) {
  var el = document.getElementById(id);
  if (el.style.display == 'none'){
    showMenu(id,ent,e,l);
  }
  else {
    hideVisibleMenus(l);
  }
}

function showMenuRight(idTitulo,idMenu) {
  var elT = document.getElementById(idTitulo);
  var el = document.getElementById(idMenu);
  el.style.position = 'absolute';
  el.style.top = getRealTop(elT);
  el.style.left = getRealRight(elT);
  el.style.display = 'block';
}

function showMenuBottom(idTitulo,idMenu) {
  var elT = document.getElementById(idTitulo);
  var el = document.getElementById(idMenu);
  el.style.position = 'absolute';
  el.style.top = getRealBottom(elT);
  el.style.left = getRealLeft(elT);
  el.style.display = 'block';
}

function toggleMenuRight(idTitulo,idMenu) {
  var elT = document.getElementById(idTitulo);
  var el = document.getElementById(idMenu);
  if (el.style.display == 'block'){
    hide(idMenu);
  }
  else{
    showMenuRight(idTitulo,idMenu);
  }
}
function loadMenuState(menuId){
  var a=GetCookie(menuId);
  if(a=='hidden')
    hide(menuId);
  else
    show(menuId);
}
function saveMenuState(menuId){
  var el=document.getElementById(menuId);
  if(el.style.display=='none')
    SetCookie(menuId,'hidden');
  else if(el.style.display=='block')
    SetCookie(menuId,'visible');
  else if(el.style.display=='inline')
    SetCookie(menuId,'visible');
  else
    SetCookie(menuId,'visible');
}

function menuClickHandler(id){
  toggle2('menu'+id);
  saveMenuState('menu'+id);
  setMarca(id);
}

function setMarca(id){
  var elM = document.getElementById('menu'+id);
  var elE = document.getElementById('entradaMenu'+id);
  if(elM.style.display=='none'){
    elE.className='submenuCerrado';
  }
  else if(elM.style.display=='block'){
    elE.className='submenuAbierto';
  }
  else if(elM.style.display=='inline'){
    elE.className='submenuAbierto';
  }
  else{
    elE.className='submenu';
  }
}

/////END MENU


function setFormElement(id,value){  
  var el = document.getElementById(id);  
  el.value = value;
}
function setParametrosPaginacionForm(ordenId,orden,dirId,dir,offsetId,offset,limitId,limit){
  setFormElement(ordenId,orden);  
  setFormElement(dirId,dir);
  setFormElement(offsetId,offset);  
  setFormElement(limitId,limit);
}
function submitir(form,action,submitName){
  if (!cadenaVacia(action)){
	document.forms[form].action = action;
  }
  var s = document.getElementById('submitter2');  
  s.value = submitName;
  document.forms[form].submit();
}

function disableName(name,tag){
  var els = getElements(name,tag);
  for(el in els){
    changeElementAbility(el,false,false);
  }
}

function acabaVentanaSuelta(args){
  //esta para evitar errores
  var f = document.getElementById('formulario');
  var s = document.getElementById('submitterHidden');
  disableName('submitter','input');
  if (s.value){
    s.value='Guardar';
  }
  if (f.submit){
    f.submit();
  }
}

window.vrg_acabaVentanaSuelta = acabaVentanaSuelta;
