function generar_fecha() {
    var fecha = new Date();
    var dia_letra = fecha.getDay();
    var dia = fecha.getDate();
    var mes = fecha.getMonth();
    var anyo = fecha.getFullYear();

    switch(dia_letra) {
        case 0: dia_letra = "Domingo"; break;
        case 1: dia_letra = "Lunes"; break;
        case 2: dia_letra = "Martes"; break;
        case 3: dia_letra = "Miércoles"; break;
        case 4: dia_letra = "Jueves"; break;
        case 5: dia_letra = "Viernes"; break;
        case 6: dia_letra = "Sábado"; break;
        default: dia_letra = "Domingo"; break;
    }
    switch(mes) {
        case 0: mes = "Enero"; break;
        case 1: mes = "Febrero"; break;
        case 2: mes = "Marzo"; break;
        case 3: mes = "Abril"; break;
        case 4: mes = "Mayo"; break;
        case 5: mes = "Junio"; break;
        case 6: mes = "Julio"; break;
        case 7: mes = "Agosto"; break;
        case 8: mes = "Septiembre"; break;
        case 9: mes = "Octubre"; break;
        case 10: mes = "Noviembre"; break;
        case 11: mes = "Diciembre"; break;
        default: mes = ""; break;
    }
    document.write(dia_letra+", "+dia+" de "+mes+" de "+anyo);
}

function reSubmit(URL) {
	document.forms[0].method='post';
	document.forms[0].action = URL;
	document.forms[0].submit();
}

function anadirIdNombre (id, nombre) {
    var x = new String ();
    var y = new String ();
    
    style = document.getElementById("fontNodo"+id).style;
    if (style.color == "") {
        if (document.nodoIds == "") {
            document.nodoIds = id;
            document.descIds = escape(nombre.replace("<b>","").replace("</b>",""));
        } else {
            document.nodoIds += "," + id;
            document.descIds += "," + escape(nombre.replace("<b>","").replace("</b>",""));
            
        }
    } else {
         
         x = document.nodoIds.toString();
         y = document.descIds.toString();
         
         x = x.replace(id,"");
         y = y.replace(escape(nombre.replace("<b>","").replace("</b>","")),"");
         
         x = x.replace(",,",",");
         y = y.replace(",,",",");
         
         if (x.charAt(0)==',') {
            x = x.substr(1);
            y = y.substr(1);
         }
         if (x.charAt(x.length-1)==',') {
            x = x.substr(0,x.length-1);
            y = y.substr(0,y.length-1);
         }
                  
         document.nodoIds = x;
         document.descIds = y;
         
    }
	 
    if (style.color == ""){
        style.color = "#CC0000";
        style.fontWeight = "Bold";
    }
    else{
        style.color = "";
        style.fontWeight = "";
    }
    
}

function reSubmitFormulario(URL,formulario) {
	eval ("document.forms['" + formulario + "'].method='post';");
	eval ("document.forms['" + formulario + "'].action = URL;");
	eval ("document.forms['" + formulario + "'].submit();");
}

function windowopener(URL,ancho,alto,nombreVentana)
{
	var propiedades;
	propiedades = "toolbar=no,directories=no,menubar=no,status=no,scrollbars=yes,resizable=yes,width=" + ancho + ",height=" + alto;
	window.open(URL,nombreVentana,propiedades)

	if (navigator.appVersion.indexOf("(X11") != -1 || navigator.appVersion.indexOf("(mac") != -1)
	window.open(URL,nombreVentana,propiedades)

}

function gotoURL (url)
{
	window.location.href = url;
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_dragLayer(objName,x,hL,hT,hW,hH,toFront,dropBack,cU,cD,cL,cR,targL,targT,tol,dropJS,et,dragJS) { //v4.01
  //Copyright 1998 Macromedia, Inc. All rights reserved.
  var i,j,aLayer,retVal,curDrag=null,curLeft,curTop,IE=document.all,NS4=document.layers;
  var NS6=(!IE&&document.getElementById), NS=(NS4||NS6); if (!IE && !NS) return false;
  var IE6=(document.documentElement);
  retVal = true; if(IE && event) event.returnValue = true;
  if (MM_dragLayer.arguments.length > 1) {
    curDrag = MM_findObj(objName); if (!curDrag) return false;
    if (!document.allLayers) { document.allLayers = new Array();
      with (document) if (NS4) { for (i=0; i<layers.length; i++) allLayers[i]=layers[i];
        for (i=0; i<allLayers.length; i++) if (allLayers[i].document && allLayers[i].document.layers)
          with (allLayers[i].document) for (j=0; j<layers.length; j++) allLayers[allLayers.length]=layers[j];
      } else {
        if (NS6) { var spns = getElementsByTagName("span"); var all = getElementsByTagName("div"); 
          for (i=0;i<spns.length;i++) if (spns[i].style&&spns[i].style.position) allLayers[allLayers.length]=spns[i];}
        for (i=0;i<all.length;i++) if (all[i].style&&all[i].style.position) allLayers[allLayers.length]=all[i]; 
    } }
    curDrag.MM_dragOk=true; curDrag.MM_targL=targL; curDrag.MM_targT=targT;
    curDrag.MM_tol=Math.pow(tol,2); curDrag.MM_hLeft=hL; curDrag.MM_hTop=hT;
    curDrag.MM_hWidth=hW; curDrag.MM_hHeight=hH; curDrag.MM_toFront=toFront;
    curDrag.MM_dropBack=dropBack; curDrag.MM_dropJS=dropJS;
    curDrag.MM_everyTime=et; curDrag.MM_dragJS=dragJS;
    curDrag.MM_oldZ = (NS4)?curDrag.zIndex:curDrag.style.zIndex;
    curLeft= (NS4)?curDrag.left:(NS6)?parseInt(curDrag.style.left):curDrag.style.pixelLeft; 
    if (String(curLeft)=="NaN") curLeft=0; curDrag.MM_startL = curLeft;
    curTop = (NS4)?curDrag.top:(NS6)?parseInt(curDrag.style.top):curDrag.style.pixelTop; 
    if (String(curTop)=="NaN") curTop=0; curDrag.MM_startT = curTop;
    curDrag.MM_bL=(cL<0)?null:curLeft-cL; curDrag.MM_bT=(cU<0)?null:curTop-cU;
    curDrag.MM_bR=(cR<0)?null:curLeft+cR; curDrag.MM_bB=(cD<0)?null:curTop+cD;
    curDrag.MM_LEFTRIGHT=0; curDrag.MM_UPDOWN=0; curDrag.MM_SNAPPED=false; //use in your JS!
    document.onmousedown = MM_dragLayer; document.onmouseup = MM_dragLayer;
    if (NS) document.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
  } else {
    var theEvent = ((NS)?objName.type:event.type);
    if (theEvent == 'mousedown') {
      var mouseX = (NS)?objName.pageX : event.clientX + ((IE6)?document.documentElement.scrollLeft:document.body.scrollLeft);
      var mouseY = (NS)?objName.pageY : event.clientY + ((IE6)?document.documentElement.scrollTop:document.body.scrollTop);
      var maxDragZ=null; document.MM_maxZ = 0;
      for (i=0; i<document.allLayers.length; i++) { aLayer = document.allLayers[i];
        var aLayerZ = (NS4)?aLayer.zIndex:parseInt(aLayer.style.zIndex);
        if (aLayerZ > document.MM_maxZ) document.MM_maxZ = aLayerZ;
        var isVisible = (((NS4)?aLayer.visibility:aLayer.style.visibility).indexOf('hid') == -1);
        if (aLayer.MM_dragOk != null && isVisible) with (aLayer) {
          var parentL=0; var parentT=0;
          if (NS6) { parentLayer = aLayer.parentNode;
            while (parentLayer != null && parentLayer.style.position) {             
              parentL += parseInt(parentLayer.offsetLeft); parentT += parseInt(parentLayer.offsetTop);
              parentLayer = parentLayer.parentNode;
          } } else if (IE) { parentLayer = aLayer.parentElement;       
            while (parentLayer != null && parentLayer.style.position) {
              parentL += parentLayer.offsetLeft; parentT += parentLayer.offsetTop;
              parentLayer = parentLayer.parentElement; } }
          var tmpX=mouseX-(((NS4)?pageX:((NS6)?parseInt(style.left):style.pixelLeft)+parentL)+MM_hLeft);
          var tmpY=mouseY-(((NS4)?pageY:((NS6)?parseInt(style.top):style.pixelTop) +parentT)+MM_hTop);
          if (String(tmpX)=="NaN") tmpX=0; if (String(tmpY)=="NaN") tmpY=0;
          var tmpW = MM_hWidth;  if (tmpW <= 0) tmpW += ((NS4)?clip.width :offsetWidth);
          var tmpH = MM_hHeight; if (tmpH <= 0) tmpH += ((NS4)?clip.height:offsetHeight);
          if ((0 <= tmpX && tmpX < tmpW && 0 <= tmpY && tmpY < tmpH) && (maxDragZ == null
              || maxDragZ <= aLayerZ)) { curDrag = aLayer; maxDragZ = aLayerZ; } } }
      if (curDrag) {
        document.onmousemove = MM_dragLayer; if (NS4) document.captureEvents(Event.MOUSEMOVE);
        curLeft = (NS4)?curDrag.left:(NS6)?parseInt(curDrag.style.left):curDrag.style.pixelLeft;
        curTop = (NS4)?curDrag.top:(NS6)?parseInt(curDrag.style.top):curDrag.style.pixelTop;
        if (String(curLeft)=="NaN") curLeft=0; if (String(curTop)=="NaN") curTop=0;
        MM_oldX = mouseX - curLeft; MM_oldY = mouseY - curTop;
        document.MM_curDrag = curDrag;  curDrag.MM_SNAPPED=false;
        if(curDrag.MM_toFront) {
          eval('curDrag.'+((NS4)?'':'style.')+'zIndex=document.MM_maxZ+1');
          if (!curDrag.MM_dropBack) document.MM_maxZ++; }
        retVal = false; if(!NS4&&!NS6) event.returnValue = false;
    } } else if (theEvent == 'mousemove') {
      if (document.MM_curDrag) with (document.MM_curDrag) {
        var mouseX = (NS)?objName.pageX : event.clientX + ((IE6)?document.documentElement.scrollLeft:document.body.scrollLeft);
        var mouseY = (NS)?objName.pageY : event.clientY + ((IE6)?document.documentElement.scrollTop:document.body.scrollTop);
        newLeft = mouseX-MM_oldX; newTop  = mouseY-MM_oldY;
        if (MM_bL!=null) newLeft = Math.max(newLeft,MM_bL);
        if (MM_bR!=null) newLeft = Math.min(newLeft,MM_bR);
        if (MM_bT!=null) newTop  = Math.max(newTop ,MM_bT);
        if (MM_bB!=null) newTop  = Math.min(newTop ,MM_bB);
        MM_LEFTRIGHT = newLeft-MM_startL; MM_UPDOWN = newTop-MM_startT;
        if (NS4) {left = newLeft; top = newTop;}
        else if (NS6){style.left = newLeft; style.top = newTop;}
        else {style.pixelLeft = newLeft; style.pixelTop = newTop;}
        if (MM_dragJS) eval(MM_dragJS);
        retVal = false; if(!NS) event.returnValue = false;
    } } else if (theEvent == 'mouseup') {
      document.onmousemove = null;
      if (NS) document.releaseEvents(Event.MOUSEMOVE);
      if (NS) document.captureEvents(Event.MOUSEDOWN); //for mac NS
      if (document.MM_curDrag) with (document.MM_curDrag) {
        if (typeof MM_targL =='number' && typeof MM_targT == 'number' &&
            (Math.pow(MM_targL-((NS4)?left:(NS6)?parseInt(style.left):style.pixelLeft),2)+
             Math.pow(MM_targT-((NS4)?top:(NS6)?parseInt(style.top):style.pixelTop),2))<=MM_tol) {
          if (NS4) {left = MM_targL; top = MM_targT;}
          else if (NS6) {style.left = MM_targL; style.top = MM_targT;}
          else {style.pixelLeft = MM_targL; style.pixelTop = MM_targT;}
          MM_SNAPPED = true; MM_LEFTRIGHT = MM_startL-MM_targL; MM_UPDOWN = MM_startT-MM_targT; }
        if (MM_everyTime || MM_SNAPPED) eval(MM_dropJS);
        if(MM_dropBack) {if (NS4) zIndex = MM_oldZ; else style.zIndex = MM_oldZ;}
        retVal = false; if(!NS) event.returnValue = false; }
      document.MM_curDrag = null;
    }
    if (NS) document.routeEvent(objName);
  } return retVal;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}



function RestaurarImagen()
{
 var Contador, Imagen, Documento = document.RI; 
  
 for (Contador = 0; (Documento) && (Contador < Documento.length) && (Imagen = Documento[Contador]) && (Imagen.oSrc); Contador++)
  Imagen.src = Imagen.oSrc;
}



function CambiarImagen()
{
 var Contador, Posicion = 0, Imagen, Argumentos = CambiarImagen.arguments; 
    
 document.RI = new Array; 
    
 for(Contador = 0; Contador < (Argumentos.length - 2); Contador += 3)
  if ((Imagen = BuscarImagen(Argumentos[Contador])) != null)
  {  
   document.RI[Posicion++] = Imagen; 
      
   if (!Imagen.oSrc) 
    Imagen.oSrc = Imagen.src; 
   
   Imagen.src = Argumentos[Contador + 2];
  }
}


function BuscarImagen(Cadena, Documento) 
{
 var Contador, Posicion, Objeto;  
    
 if (!Documento) 
  Documento = document; 
    
 if (((Posicion = Cadena.indexOf("?")) > 0) && (parent.frames.length)) 
 {
  Documento = parent.frames[Cadena.substring(Posicion + 1)].document; 
  Cadena = Cadena.substring(0,Posicion);
 }
    
 if (!(Objeto = Documento[Cadena])&& (Documento.all)) 
  Objeto = Documento.all[Cadena]; 
     
 for (Contador = 0; (!Objeto) && (Contador < Documento.forms.length); Contador++) 
  Objeto = Documento.forms[Contador][Cadena];
     
 for (Contador = 0; (!Objeto) && (Documento.layers) && (Contador < Documento.layers.length); Contador++) 
  Objeto = BuscarImagen(Cadena,Documento.layers[Contador].document); 
     
 return Objeto;
}

function ParametrosFormulario(href,formularioquellama,input,ancho,alto)
{
	var texto = new String();
	if (input == "idPais")
	{
		var textoPaises = eval ("document.forms['" + formularioquellama + "'].idPais.value;");
		texto = "windowopener('" + href + "&" + input + "="  + textoPaises + "'," + ancho + "," + alto + ")";
	}	
	if (input == "idSector")
	{
		var textoSectores = eval ("document.forms['" + formularioquellama + "'].idSector.value;");
		texto = "windowopener('" + href + "&" + input + "="  + textoSectores + "'," + ancho + "," + alto + ")";
	}	
	if (input == "idTipo")
	{
		var textoTipos = eval ("document.forms['" + formularioquellama + "'].idTipo.value;");
		texto = "windowopener('" + href + "&" + input + "="  + textoTipos + "'," + ancho + "," + alto + ")";
	}	
	eval (texto);	
}

function habilitaYEnvia(formularioquellama,url)
{
	eval ("document.forms['" + formularioquellama + "'].pais.disabled = false;");
	eval ("document.forms['" + formularioquellama + "'].sector.disabled = false;");
	eval ("document.forms['" + formularioquellama + "'].tipo.disabled = false;");
	eval ("document.forms['" + formularioquellama + "'].method = 'post';");
	eval ("document.forms['" + formularioquellama + "'].action = '" + url + "';");
	eval ("document.forms['" + formularioquellama + "'].submit();");
}

function compruebaEnviaYCierra(formularioQueLlama)
{
	var seleccionaos = compruebaSeleccionados();
	//alert(seleccionaos.slice(0, seleccionaos.indexOf("\\", 0)));
	//alert(seleccionaos.slice(seleccionaos.indexOf("\\", 0)+1 , seleccionaos.length));
	envia(	seleccionaos.slice(0, seleccionaos.indexOf("\\", 0)), 
			seleccionaos.slice(seleccionaos.indexOf("\\", 0)+1 , seleccionaos.length),
			formularioQueLlama);
	window.close();
}

function eliminaSeleccionados()
{
	var i, elCheck;
	for (i=0; i<document.forms[0].length;i++)
	{
		elCheck = document.forms[0].item(i);
		elCheck.checked = false
	}
}

function enviaFormulario(nombreFormulario)
{
	if (self.CodificaAntesDeRecargar != null) {
		CodificaAntesDeRecargar();
	}
	eval ("document.forms['" + nombreFormulario + "'].method='post';");
	eval ("document.forms['" + nombreFormulario + "'].submit();");
}

function eliminarDeLaLista (nombreCampo,nombreFormulario,orden,URL) {
	if (self.CodificaAntesDeRecargar != null) {
		CodificaAntesDeRecargar();
	}
	eval ("document.forms['" + nombreFormulario + "'].borrado" + nombreCampo + orden + ".value = '1';");
	eval ("document.forms['" + nombreFormulario + "'].action = unescape(URL) + '#' + nombreCampo;");
	eval ("document.forms['" + nombreFormulario + "'].submit();");
}
function eliminarDeLaListaFichero (nombreCampo,nombreFormulario,orden,idDoc,URL,datos) {
	if (self.CodificaAntesDeRecargar != null) {
		CodificaAntesDeRecargar();
	}
	eval ("document.forms['" + nombreFormulario + "'].borrado" + nombreCampo + orden + ".value = '1';");
	
	if ((datos == " ") || (datos == "")) {
		datos = idDoc;
	}
	else{
		datos = datos + ","  + idDoc;
	}
	
	
	eval("document.forms['" + nombreFormulario + "']." + nombreCampo + "IdEliminar.value ='" + datos + "';");
	
	eval("document.forms['" + nombreFormulario + "'].action = URL;");
	eval("document.forms['" + nombreFormulario + "'].submit();");
	
}
function compruebaSeleccionados()
{
	var i, elCheck;
	var arrayIDs=new String(), arrayNombres=new String();
	for (i=0; i<document.forms[0].length;i++)
	{
		elCheck = document.forms[0].item(i);
		if (elCheck.checked)
		{
			if (arrayIDs != "") arrayIDs += ",";
			arrayIDs += elCheck.value.slice (elCheck.value.indexOf(",,", 0)+2, elCheck.value.length);
				
			if (arrayNombres != "") arrayNombres += ",";
			arrayNombres += elCheck.value.slice (0, elCheck.value.indexOf(",,", 0));
		}
	}
	//if (arrayNombres == "") arrayNombres = "Cualquiera";
	return arrayIDs + "\\" + arrayNombres;
}

function actualizarTodoBuscador (idsMarcados,id,nombre,nombreCampo,nombreFormulario,URL) {
	//alert (id + " - " + nombre + " - " + nombreCampo + " - " + nombreFormulario + "   ")
	//alert(nombre);
	//alert(nombreCampo);
	//alert(nombreFormulario);
	//alert(URL);
	//var seleccionaos = compruebaSeleccionados();
	//alert (seleccionaos);
	
	var seleccionaos = idsMarcados;
	//if (seleccionaos == "\") seleccionaos = "";
	var arrayIDs=new String(), arrayNombres=new String();
	arrayNombres = seleccionaos.slice(seleccionaos.indexOf("*", 0)+1, seleccionaos.length);
	arrayIDs = seleccionaos.slice(0, seleccionaos.indexOf("*", 0));
	if (arrayIDs != "") arrayIDs += ",";
	arrayIDs += id;
	if (arrayNombres != "") arrayNombres += ",";
	arrayNombres += nombre;
	finalizar(arrayNombres,arrayIDs,nombreCampo,nombreFormulario,URL);
}

function actualizarPreferencias (nombreCampo,nombreFormulario,URL) {
	//alert (nombreCampo,nombreFormulario)
	var seleccionaos = compruebaSeleccionados();
	var arrayIDs=new String(), arrayNombres=new String();
	arrayNombres = seleccionaos.slice(seleccionaos.indexOf("\\", 0)+1, seleccionaos.length);
	arrayIDs = seleccionaos.slice(0, seleccionaos.indexOf("\\", 0));
	finalizar(arrayNombres,arrayIDs,nombreCampo,nombreFormulario,URL);
}
function actualizarTodo (id,nombre,nombreCampo,nombreFormulario,URL) {
	//alert (id + " - " + nombre + " - " + nombreCampo + " - " + nombreFormulario + "   ")
	var seleccionaos = compruebaSeleccionados();
	var arrayIDs=new String(), arrayNombres=new String();
	arrayNombres = seleccionaos.slice(seleccionaos.indexOf("\\", 0)+1, seleccionaos.length);
	arrayIDs = seleccionaos.slice(0, seleccionaos.indexOf("\\", 0));
	if (arrayIDs != "") arrayIDs += ",";
	arrayIDs += id;
	if (arrayNombres != "") arrayNombres += ",";
	arrayNombres += nombre;
	finalizar(arrayNombres,arrayIDs,nombreCampo,nombreFormulario,URL);
}
function miactualizarTodo (id,nombre,nombreCampo,nombreFormulario,URL) {
	//alert (id + " - " + nombre + " - " + nombreCampo + " - " + nombreFormulario + "   ")
	var seleccionaos = compruebaSeleccionados();
	var arrayIDs=new String(), arrayNombres=new String();
	arrayNombres = seleccionaos.slice(seleccionaos.indexOf("\\", 0)+1, seleccionaos.length);
	arrayIDs = seleccionaos.slice(0, seleccionaos.indexOf("\\", 0));
	if (arrayIDs != "") arrayIDs += ",";
	arrayIDs += id;
	if (arrayNombres != "") arrayNombres += ",";
	arrayNombres += nombre;
	mifinalizar(arrayNombres,arrayIDs,nombreCampo,nombreFormulario,URL);
}

function mi2actualizarTodo (id,nombre,nombreCampo,nombreFormulario,URL) {
	//alert (id + " - " + nombre + " - " + nombreCampo + " - " + nombreFormulario + "   ")
	var seleccionaos = compruebaSeleccionados();
	var arrayIDs=new String(), arrayNombres=new String();
	arrayIDs = document.nodoIds;
	arrayNombres = document.descIds;
	finalizar(arrayNombres,arrayIDs,nombreCampo,nombreFormulario,URL);
}

function mi3actualizarTodo (nombreCampo,nombreFormulario,URL) {
	//alert (id + " - " + nombre + " - " + nombreCampo + " - " + nombreFormulario + "   ")
	var seleccionaos = compruebaSeleccionados();
	var arrayIDs=new String(), arrayNombres=new String();
	arrayIDs = document.nodoIds;
	if (arrayIDs == "")
	    arrayIDs = "_,"  
	arrayNombres = document.descIds;
	
	finalizar(arrayNombres,arrayIDs,nombreCampo,nombreFormulario,URL);
}
function actualizarTodoFichero (id,nombre,nombreCampo,nombreFormulario,URL) {
	//alert (id + " - " + nombre + " - " + nombreCampo + " - " + nombreFormulario + "   ")
	var arrayIDs=new String(), arrayNombres=new String();
	if (arrayIDs != "") arrayIDs += ",";
	arrayIDs += id;
	if (arrayNombres != "") arrayNombres += ",";
	arrayNombres += nombre;
	finalizar(arrayNombres,arrayIDs,nombreCampo,nombreFormulario,URL);
}

function finalizar (nombres,ids,nombreCampo,nombreFormulario,URL) {
	if (window.opener.CodificaAntesDeRecargar != null) {
		window.opener.CodificaAntesDeRecargar();
	}
	eval ("window.opener.document.forms['" + nombreFormulario + "'].nuevo" + nombreCampo + ".value = nombres;");
	eval ("window.opener.document.forms['" + nombreFormulario + "'].nuevoId" + nombreCampo + ".value = ids;");
	eval ("window.opener.document.forms['" + nombreFormulario + "'].action = URL + '#' + nombreCampo;");
	eval ("window.opener.document.forms['" + nombreFormulario + "'].submit();");
	window.close();			
}

function mifinalizar (nombres,ids,nombreCampo,nombreFormulario,URL) {
	eval ("window.opener.document.forms['" + nombreFormulario + "'].nuevo" + nombreCampo + ".value = nombres;");
	eval ("window.opener.document.forms['" + nombreFormulario + "'].nuevoId" + nombreCampo + ".value = ids;");
	eval ("window.opener.document.forms['" + nombreFormulario + "'].action = URL + '#' + nombreCampo;");
	eval ("window.opener.document.forms['" + nombreFormulario + "'].submit();");
	eval ("window.focus();");
	eval ("window.opener.blur();");
	//window.close();			
}

// Igual que finalizar pero lo hace sobre el mismo documento
function finalizar2 (nombres,ids,nombreCampo,nombreFormulario,URL) {

		eval ("window.document.forms['" + nombreFormulario + "'].nuevo" + nombreCampo + ".value = nombres;");
		eval ("window.document.forms['" + nombreFormulario + "'].nuevoId" + nombreCampo + ".value = ids;");
		eval ("window.document.forms['" + nombreFormulario + "'].action = URL + '#' + nombreCampo;");
		eval ("window.document.forms['" + nombreFormulario + "'].submit();");	

	
}


function convertirEnASCII(cadena) {
    document.write(unescape(cadena));
}

function rellenarConASCII(nombreFormulario,nombreCampo,cadena)
{
	if (nombreFormulario=='') {
		obj = eval("document.forms[0]." + nombreCampo);
	} else {
		obj = eval("document.forms['" + nombreFormulario + "']." + nombreCampo);
	}
	cadena = unescape(cadena);
	while(cadena.indexOf("%20") >= 0 || cadena.indexOf("%25") >= 0)
		cadena = unescape(cadena);
	obj.value = cadena
}



function getCookie(galletita) { 
	var inicio,fin; 
	var fin1; 

	var galletas = document.cookie; 
	inicio = galletas.indexOf(galletita+"="); 
	if (inicio == -1) 
		return ""; 

	inicio += galletita.length + 1; 

	fin = galletas.indexOf(";",inicio); 

	if (fin == -1) 
		fin = galletas.length; 

	return galletas.substring(inicio,fin); 
} 


function string2fecha(cadena) {
	if (!cadena)
		return new Date();
				
	trozos = cadena.split("/");
	if (trozos.length != 3)
		return new Date();
				
	return new Date(trozos[2],trozos[1]-1,trozos[0]);
}
		
function fecha2string(fecha) {
	var dia = new String(fecha.getDate());
	var mes = new String(fecha.getMonth()+1);
	var anio = new String(fecha.getFullYear());
			
	if (dia.length == 1)
		dia = "0" + dia;
				
	if (mes.length == 1)
		mes = "0" + mes;
				
	return dia + "/" + mes + "/" + anio;
}

function getposOffset(overlay, offsettype) {
    var totaloffset = (offsettype == "left") ? overlay.offsetLeft : overlay.offsetTop;
    var parentEl = overlay.offsetParent;
    while (parentEl != null) {
        totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
        parentEl = parentEl.offsetParent;
    }
    return totaloffset;
}		

function llamaAlCalendario(fecha,objName) 
{
	var campito = findObj(objName);
	var top = 0;
	var left = 0;
	
	
	top = campito.clientTop + campito.offsetTop + campito.clientHeight + 5;
	left = campito.clientLeft + campito.offsetLeft;
	
	var padre = campito.offsetParent;
	while (padre != null) {
		top += padre.offsetTop;	
		left += padre.offsetLeft;
		padre = padre.offsetParent; 
	} 
	
	cal.setFechaSeleccionada(fecha);
	cal.mostrar(top,left,objName);
}
      
function localizacionCursor(nombreFormulario,nombreCampo)
{
	eval ("document.forms['" + nombreFormulario + "']." + nombreCampo + ".focus();");
}

function numerodeids (cadena) {
	if (cadena == '()')
		return 0;
	else {
		trozos = cadena.split(",");
		return trozos.length;
	}
}

var detalle = null;

function VerDetalleVacaciones(idSolicitud) {
	detalle = window.open("../vacaciones/detalleVacaciones.asp?idSolicitud="+idSolicitud,"Detalle","scrollbars=yes,resizable=yes,width=352,height=300")
}
function VerDetalleGastos(idSolicitud) {
	detalle = window.open("../gastos/detalleGasto.asp?idGasto="+idSolicitud,"Detalle","scrollbars=yes,resizable=yes,width=540,height=500")
}

function AceptaORechaza(idSolicitud,accion) {
	if (detalle != null) {
		detalle.close();
		detalle = null;
	}
	document.forms[0].idSolicitud.value = idSolicitud;
	document.forms[0].accion.value = accion;
	document.forms[0].submit();
	return false;
}

function Confirmar(mensaje,urlDestino) {
	if (confirm(mensaje)) {
		if (detalle != null) {
			detalle.close();
			detalle = null;
		}
		gotoURL(urlDestino);
	}
}


function RechazarSolicitud(idSolicitud) {
	gotoURL("../notificaciones/rechazarSolicitud.asp?id="+idSolicitud)
}


var puntoKeyCode = 46;
var comaKeyCode = 44;
var separadorDecimales = ',';
var separadorMiles = '.';


function GetSelection()
{
	var txt = "";
	if (window.getSelection) {
		txt = window.getSelection();
	}
	else if (document.getSelection) {
		txt = document.getSelection();
	}
	else if (document.selection) {
		txt = document.selection.createRange().text;
	}
	return txt;
}


function getCaretPosition(elm) {
if (typeof elm.selectionStart != "undefined")
	return elm.selectionStart;
else if (document.selection)
	return Math.abs(document.selection.createRange().moveStart("character",-1000000));
}


//Esto se hace cada vez que se pulsa una tecla en un input del tipo double
function doOnKeyPressDouble(input)
{
	if (GetSelection() == input.value && input.value.length > 0) {
		input.value = "";
		input.select();
	}

	nuevaTecla = String.fromCharCode(window.event.keyCode);

	if (nuevaTecla != '1' && nuevaTecla != '2' &&
		nuevaTecla != '3' && nuevaTecla != '4' &&
		nuevaTecla != '5' && nuevaTecla != '6' &&
		nuevaTecla != '7' && nuevaTecla != '8' &&
		nuevaTecla != '9' && nuevaTecla != '0' &&
		nuevaTecla != separadorDecimales && nuevaTecla != separadorMiles &&
		nuevaTecla != '-') {
		//la nueva tecla no es un numero
		return false;	
	}
	
	if (nuevaTecla == '0' && input.value == '0') {
		return false;
	} else if (nuevaTecla != separadorDecimales && nuevaTecla != separadorMiles && nuevaTecla != '0' && input.value == '0') {
		input.value = '';
	}
	
	if (nuevaTecla == separadorMiles || nuevaTecla == separadorDecimales) {
		if (nuevaTecla == separadorMiles) {
			window.event.keyCode = comaKeyCode;
		}
		if (input.value.indexOf(separadorDecimales) != -1 || input.value == "-") {
			//Ya hay separador de decimales
			return false;
		} else if (input.value == "") {
			input.value = "0";
		}
	}
	
	if (nuevaTecla == '-' && (input.value.indexOf('-') != -1 || getCaretPosition(input) != 0)) {
		//Ya hay guión
		return false;
	}
/*
	if (GetSelection().length = 0) {
		x = input.value.indexOf(separadorDecimales);
		if ( x >= 0 && (input.value.length - x) > 2 && getCaretPosition(input) > x) {
			//No puede haber más de 2 decimales
			return false;
		}
	}
*/
	return true;
}


//Esto se hace despues de haber pulsado una tecla en un input del tipo double
function doOnKeyUp() {
	if (self.Recalcular != null) {
		Recalcular();
	}
}


function doOnBlur(obj) {
	Formatear(obj,false,2);
	if (self.Recalcular != null) {
		Recalcular();
	}	
	return true;
}


//Esto se hace cada vez que se pulsa una tecla en un input del tipo entero
function doOnKeyPressEntero(input)
{
	nuevaTecla = String.fromCharCode(window.event.keyCode);

	if (nuevaTecla != '1' && nuevaTecla != '2' &&
		nuevaTecla != '3' && nuevaTecla != '4' &&
		nuevaTecla != '5' && nuevaTecla != '6' &&
		nuevaTecla != '7' && nuevaTecla != '8' &&
		nuevaTecla != '9' && nuevaTecla != '0') {
		//la nueva tecla no es un numero
		return false;	
	}
	
	if (nuevaTecla == '0' && input.value == '0') {
		return false;
	} else if (nuevaTecla != '0' && input.value == '0') {
		input.value = '';
	}

	return true;
}





function dameNumeroDouble(number) {
	if (number == "" || number == "-" || number == null) {
		return eval(0);
	}
	
	aux = number;
	while (aux.indexOf(separadorMiles) != -1) {
		aux = aux.replace(separadorMiles, "")
	}
	while (aux.indexOf(separadorDecimales) != -1) {
		aux = aux.replace(separadorDecimales,".");
	}
	
	if (aux == '-') {
		return eval(0);
	} else {
		return eval(aux);
	}
}