// Código necesario para cambiar el estilo automáticamente en función de
// un parametro
var sCSS;
var sPathRelativo;

if (sCSS==undefined) sCSS='';
sParametros=window.location.search;
if (sParametros.length>0)
{
	if (sParametros.substr(0,1)=='?') sParametros=sParametros.substr(1);
  aParam=sParametros.split('&');
  for(i=0; i<aParam.length; i++)
  {
  	sParam=aParam[i];
		aPareja=sParam.split('=');
		if (aPareja.length==2)
		{
			if (aPareja[0].toLowerCase()=='css')
			{
				sCSS=aPareja[1];
			}
		}
	}
}
if(sPathRelativo==undefined)
{
	sPathRelativo='../../css/';
}
if(sCSS.length>0)
{
  if (NavegadorIE()) document.createStyleSheet( sPathRelativo+ sCSS + '.css');
  else
  {
		if (document.styleSheets.length>0)
		{
			var sPath,iPos;
			sPath=window.location.pathname;
			iPos=sPath.lastIndexOf('/');
			if (iPos>0)
			{ 
				//sPath=sPath.substring(0,iPos+1);
				//sPath=sPath + sPathRelativo + sCSS + '.css';
				//oCSS=document.styleSheets.item(document.styleSheets.length-1);
				//while (oCSS.cssRules.length>0) oCSS.deleteRule(0);
				//oCSS.insertRule('@import url(' + sPath + ');',0);
				addCss('@import url(' + sPath + ');')
			}
		}
  }
}

//Funcion para añadir un css dinamicamente
function addCss(cssCode) {
  var styleElement = document.createElement("style");
  styleElement.type = "text/css";
      if (styleElement.styleSheet) {
            styleElement.styleSheet.cssText = cssCode;
      } else {
            styleElement.appendChild(document.createTextNode(cssCode));
      }
document.getElementsByTagName("head")[0].appendChild(styleElement);
}

// Función utilizada para gestionar los links en el caso de trabajar con múltiples CSS
function GestionarEnlace(sEnlace, w, h, iURL, iVentanaNueva, sTarget,iHTTPS){
	//Le pasamos el parametro (si tiene)
	if ((sCSS.length>0)&&(sEnlace.indexOf("javascript:")==-1))
	{
		if (sEnlace.indexOf("?")==-1) sEnlace=sEnlace + '?css=' + sCSS;
		else sEnlace=sEnlace + '&css=' + sCSS;
	}
	
  sEnlace=CalcularURLHTTPS(sEnlace,iHTTPS);

	//Comprobamos el destino del link
	if (iVentanaNueva==0)	{
		if (sTarget.length==0) 
	    window.open(sEnlace,'_self');
		else
      window.open(sEnlace,sTarget);
	}
	else {
		abrirVentana(sEnlace,w,h,iURL);
	}
}
function GestionarEnlaceParams(sEnlace, iWidth, iHeight, iURL, iVentanaNueva, sTarget, iHTTPS, sParams)
{
	var oCampo,aRelServicio,aParejaRel,sValor,oFormLink,oCampoOculto,i,oVentana,sNombreVentana,iTop,iLeft,sFeatures,aParams;
  
	//Buscamos el formulario que utilizaremos para simular un link y le quitamos todos los campos que tenga.
	oFormLink=document.getElementById('frmLink');
	if (oFormLink)
	{
		while (oFormLink.childNodes.length>0)
			oFormLink.removeChild(oFormLink.childNodes.item(0));
	}
	else
	{
			oFormLink = document.createElement('form');
			oFormLink.id='frmLink';
			oFormLink.name='frmLink';
			oFormLink.method='POST';
			document.body.appendChild(oFormLink);
	}

	//Por cada campo anadimos un campo oculto al formulario con su valor
	aRelServicio=sParams.split('|@|'); //OMC 28/04/2008 Los parametros de los links se separan con esta cadena: '|@|'

	for(i=0;i<aRelServicio.length;i++)
	{
		//Buscamos el valor del campo
		aParejaRel=aRelServicio[i].split('=');
		
		//** AGA 20/09/2006: Paso de parámetros entre formularios
		// La codificación de la relación de campos entre páginas puede ser de 2 maneras:
		//  - Campos resultado consulta (sistema tradicional):
		//				En la parte derecha del igual está el nombre del campo resultado de la consulta
		//  - Parámetro (sistema nuevo):
		//				En la parte derecha del igual está el tipo de parámetro (CMP=campo o VAL=valor)
		//        y el valor (nombre del campo en el form o valor, respectivamente) separados
		// 				por la secuencia de control "|$|"

		aParams=aParejaRel[1].split('|$|');
		
		if (aParams.length == 2)
		{
			
			// Relación por parámetro
			switch(aParams[0])
			{
				case 'CMP':
					oCampo=document.getElementById(aParams[1]);					
					if (oCampo!=null)
					{
						if(oCampo.type=='checkbox')
						{
							if(oCampo.checked){ sValor="S";}
							else{sValor="N"}
						}
						else
						{
							sValor=oCampo.value;	
						}
											
					}
					else sValor='';					
					break;
				
				case 'VAL':		
					sValor = aParams[1];
					if (sValor.match("&#")){
					    sValor = intAChar(aParams[1]);
					}else{
					    sValor=URLDecode(aParams[1]);    
					}
					break;
				
				default:
					sValor='AAAAAAAA';
					break;
			}
			//Creamos un campo oculto y lo anadimos al formulario
			oCampoOculto=document.createElement('INPUT');
			oCampoOculto.type='hidden';
			oCampoOculto.name=aParejaRel[0];
			oCampoOculto.value=sValor;
			oFormLink.appendChild(oCampoOculto);				
		}
	}
	
	
	//Comprobamos si el resultado hay que mostrarlo en otra ventana o no
	if (iVentanaNueva==1)
	{
	  //Calculamos la posicion de la ventana para que salga en el centro
		iLeft=Math.round((window.screen.availWidth-iWidth)/2);
	  if ((iLeft<0) || (iWidth==0)) iLeft=0;
		iTop=Math.round((window.screen.availHeight-iHeight)/2);
	  if ((iTop<0) || (iHeight==0)) iTop=0;
		if (iVentanaNueva==0) sFeatures='scrollbars=yes,resizable=yes';
		else sFeatures='menubar=yes,toolbar=yes,scrollbars=yes,resizable=yes,location=yes';
		sFeatures=sFeatures.concat(',width='+iWidth+',height='+iHeight+',left='+iLeft+',top='+iTop);

		// Abrimos la nueva ventana
		sNombreVentana='_EDW_popup_';
		oVentana=window.open('about:blank',sNombreVentana,sFeatures);
		oFormLink.target=sNombreVentana;
		oVentana.focus();
	}
	else 
	{
		if (sTarget.length==0) 
    	oFormLink.target='_self';
		else
			oFormLink.target='sTarget';
	}

	//Ejecutamos el link
	sEnlace=CalcularURLHTTPS(sEnlace,iHTTPS);
	if (sEnlace.lastIndexOf('?')>0)
		oFormLink.action=sEnlace.concat('&procedencia=Parametros');
	else
		oFormLink.action=sEnlace.concat('?procedencia=Parametros');
	oFormLink.submit();

	if (oFormLink.target != '_self' && NavegadorIE()) { 
	    //SERGIO MANZANO PEREZ 30-11-2007
	    //history.back();
	}
}


function CalcularURLHTTPS(sEnlace,iHTTPS)
{
  var sNuevoEnlace, sPathBase;
  var bCambiarProtocolo=false;
  var lPos;
   sNuevoEnlace=sEnlace;
   if (iHTTPS!="2")
   {
     if ((sEnlace.indexOf("http://")==-1)&& (sEnlace.indexOf("https://")==-1))
     {
        if (self.location.protocol=="http:" && iHTTPS==1) bCambiarProtocolo=true;
        if (self.location.protocol=="https:" && iHTTPS==0) bCambiarProtocolo=true;
        if (bCambiarProtocolo)
        {
          if (iHTTPS==0) sNuevoEnlace="http://";
          if (iHTTPS==1) sNuevoEnlace="https://";
          sNuevoEnlace=sNuevoEnlace + self.location.host;
          if(self.location.port!="")  sNuevoEnlace=sNuevoEnlace + ":" + self.location.port;
          sPathBase=self.location.pathname;
          lPos=sPathBase.lastIndexOf("/");
          if (lPos!=-1)
          {
            sPathBase=sPathBase.substring(0,lPos-1);
           }
          sNuevoEnlace=sNuevoEnlace+sPathBase + "/" +sEnlace;
        }    
        
      }
   }
      return sNuevoEnlace;
}



//Abre una nueva ventana con la URL indicada
function abrirVentana(enlace, w, h, iURL)
{
  var ileft,itop;

  /* Calculamos la posición de la ventana para que salga en el centro */
	ileft=Math.round((window.screen.availWidth-w)/2);
  if (ileft<0) ileft=0;
	itop=Math.round((window.screen.availHeight-h)/2);
  if (itop<0) itop=0;

	/* Si se trata de una URL, mostramos todas las barras de la navegación */  
  if (iURL == 0)
  {
  	win2 = window.open(enlace,'_blank','scrollbars=yes,resizable=yes,width='+w+',height='+h+',left='+ileft+',top='+itop); 
  }
  else
  {
  	win2 = window.open(enlace,'_blank','menubar=yes,toolbar=yes,scrollbars=yes,resizable=yes,location=yes,width='+w+',height='+h+',left='+ileft+',top='+itop); 
  }    

	/* Ponemos el foco en la nueva ventana */    
 	try {   win2.focus(); }
	catch(ex) {  }
}
function abrirDocumento(enlace, w, h)
{
  var ileft,itop;

  /* Calculamos la posición de la ventana para que salga en el centro */
	ileft=Math.round((window.screen.availWidth-w)/2);
  if (ileft<0) ileft=0;
	itop=Math.round((window.screen.availHeight-h)/2);
  if (itop<0) itop=0;

	/* mostramos solo las barras de menu */  
  	win2 = window.open(enlace,'_blank','menubar=yes,scrollbars=yes,resizable=yes,width='+w+',height='+h+',left='+ileft+',top='+itop); 
	/* Ponemos el foco en la nueva ventana */    
    win2.focus();
}
 //Abre una nueva ventana OCULTA con la URL indicada
function abrirVentanaOculta(enlace)
{
  	win2 = window.open(enlace,'oculta','scrollbars=no,resizable=no,toolbar=no,titlebar=no,status=no,location=no,width=1,height=1,left=0,top=0');  
    self.focus();
}
//funciones relacionadas con los menús Flash
//Captura el nombre del directorio y lo envia al menu flash
function obtenerUrl(){
			//cadenaUrl = location.pathname;
			if(parent.frames[0]){
				cadenaUrl = parent.frames[0].location.href;
			}else{
			 cadenaUrl = location.pathname;
			}
			partesUrl = cadenaUrl.split("/"); // la contrabarra se escribe doble: \\
			seccion= partesUrl[partesUrl.length-2];
			return seccion
	}

//envia el valor de la variable al archivo flash
function pasaVariable() 
{
	if(document.flsMenu)
	{
			document.flsMenu.SetVariable("_root.carpeta",obtenerUrl());
	}
	return 0;
}
//inserta la fecha
function fecha(){
var ahora=new Date();
var anyo=(ahora.getYear()<1000)?ahora.getYear()+1900:ahora.getYear();
var mes=ahora.getMonth()+1;
var dia=ahora.getDate();
mes=(mes<10)?"0"+mes:mes;
dia=(dia<10)?"0"+dia:dia;
  document.write(dia+"."+mes+"."+anyo);
}

//--------------------------------------------------
//	Función para identificar el navegador que está
//	utilizando el cliente
//--------------------------------------------------
function NavegadorIE() {
	if (navigator.appName.indexOf("Microsoft") != -1) {
		return true;
	} else {
		return false;
	}
}


//--------------------------------------------------
//	Función para identificar el navegador que está
//	utilizando el cliente (safari + firefox)
//--------------------------------------------------
function NavegadorNetscape() {
	if (navigator.appName == "Netscape") return true;
	else return false;
}

//--------------------------------------------------
//	Función para identificar el navegador que está
//	utilizando el cliente (safari + firefox)
//--------------------------------------------------
function NavegadorOpera() {
	if (navigator.appName == "Opera") return true;
	else return false;
}

//--------------------------------------------------
//	Funcions per ocultar les seccions que no es
//	volen imprimir
//--------------------------------------------------
function antesImpresion()
{
  var oItm; 
  for(i = 0; i < document.all.length; i++)
  {
    oItm = document.all(i);
	  if ("clsNoImprimir" == oItm.className) oItm.className = "clsOcultarAlImprimir";
  }
}

function despuesImpresion()
{
  var oItm; 
  for(i = 0; i < document.all.length; i++)
  {
    oItm = document.all(i);
    if ("clsOcultarAlImprimir" == oItm.className) oItm.className = "clsNoImprimir";
  }
}

window.onbeforeprint=antesImpresion;
window.onafterprint=despuesImpresion;


/************************************************/
/************** Gestion de cookies **************/
/************************************************/
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,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

/************************************************/
/************** Gestion de estilos **************/
/************************************************/


function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  setCookie("style", title, 365);
}

function cargaEstiloPersonalizado()
{
	var cookie = readCookie("style");
	var title = cookie ? cookie : getPreferredStyleSheet();
	setActiveStyleSheet(title);
}




//--------------------------------------------------
//	Función para inversa al Server.UrlEncode de ASP
//--------------------------------------------------
function URLDecode(texto)
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   var encoded = texto;
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	} // while
   return plaintext;
}


//OMC 27/03/2008 Si detectem la cadena Script a la url retornem una pàgina d'error avisant a l'usuari.
        var urlError = '../src/asp/error/error.htm';
        var url = document.URL;
        if (url.match('<script>') || url.match('%3Cscript%3E')
         || url.match('<SCRIPT>') || url.match('%3CSCRIPT%3E')
         || url.match('<Script>') || url.match('%3CScript%3E')){
            window.location = urlError;
        }

//OMC FIN  27/03/2008


//29/04/2008 Función utilizada en el ASP CambiaIdioma para renombrar los atributos name de los diferentes hiddens y hacer el submit del formulario.
//Eso es debido a que los name de los hiddens del cambioIdioma no pueden ser igual al del formulario/consulta destino ya que sino
//la funcion EstablecerValorCampo puede no funcionar como debería.
function cambiarIdioma(form_idioma, aCampos, prefijo){
	var oFormIdioma, oCampo;
	var sCampoName;
	var intACamposLength;
	try
	{
		if(form_idioma){
			oFormIdioma = document.getElementById(form_idioma);
			if(aCampos){
				intACamposLength = aCampos.length;
				for(i=0;i<intACamposLength;i++){
					oCampo = document.getElementById(aCampos[i]);				
					if(oCampo){oCampo.name = aCampos[i].replace(prefijo,"");}		
				}
			}
			oFormIdioma.submit();			
		}
	}catch(ex){}
}

// OMC 29/04/2008
// método para el paso de los valores con símbolos especiales (acentos, tíldes, exclamación, interrogación, ...)
// convierte la cadena del parámetro troceándola según encuentre símbolo o no y la reconstruye de nuevo de modo 
//que se obtiene el parámetro de un modo inteligible.
function intAChar(valor){
	var i=0;
	var simbolo=''; 
	var palabra='';
	while (i<valor.length){
	  if (valor.charAt(i) != '&'){
		simbolo = valor.charAt(i);
		palabra = palabra+simbolo;
		i++;
	  }else{
		caracter = valor.substring(i,i+6); 
		//Se obtiene una cadena del tipo '&#nnn;' donde 'nnn' será un número del (000 - 255) 
		//Sólo estan contempladas las vocales acentuadas Ñ, Ç Mayus i Minus, el resto las recibe de manera correcta porque son caracteres del 000 al 127
		//Los no contemplados se obvian porque son caracteres que se supone que nunca se pasaran por parametro de modo que si se pasan el parametro no rellenara el campo en cuestión.
		//Para que si que lo añada sólo hace falta añadir el case correspondiente.
		switch (caracter){
            case '&#192;': 
             simbolo = 'À'; 
              break; 
            case '&#193;': 
             simbolo = 'Á'; 
              break; 
            case '&#194;': 
             simbolo = 'Â'; 
              break; 
            case '&#195;': 
             simbolo = 'Ã'; 
              break; 
            case '&#196;': 
             simbolo = 'Ä'; 
              break; 
            case '&#199;': 
             simbolo = 'Ç'; 
              break; 
            case '&#200;': 
             simbolo = 'È'; 
              break; 
            case '&#201;': 
             simbolo = 'É'; 
              break; 
            case '&#202;': 
             simbolo = 'Ê'; 
              break; 
            case '&#203;': 
             simbolo = 'Ë'; 
              break; 
            case '&#204;': 
             simbolo = 'Ì'; 
              break; 
            case '&#205;': 
             simbolo = 'Í'; 
              break; 
            case '&#206;': 
             simbolo = 'Î'; 
              break; 
            case '&#207;': 
             simbolo = 'Ï'; 
              break; 
            case '&#208;': 
             simbolo = 'Ð'; 
              break; 
            case '&#209;': 
             simbolo = 'Ñ'; 
              break; 
            case '&#210;': 
             simbolo = 'Ò'; 
              break; 
            case '&#211;': 
             simbolo = 'Ó'; 
              break; 
            case '&#212;': 
             simbolo = 'Ô'; 
              break; 
            case '&#213;': 
             simbolo = 'Õ'; 
              break; 
            case '&#214;': 
             simbolo = 'Ö'; 
              break; 
            case '&#217;': 
             simbolo = 'Ù'; 
              break; 
            case '&#218;': 
             simbolo = 'Ú'; 
              break; 
            case '&#219;': 
             simbolo = 'Û'; 
              break; 
            case '&#220;': 
             simbolo = 'Ü'; 
              break; 
            case '&#221;': 
             simbolo = 'Ý'; 
              break;
            case '&#224;': 
             simbolo = 'à'; 
              break; 
            case '&#225;': 
             simbolo = 'á'; 
              break; 
            case '&#226;': 
             simbolo = 'â'; 
              break; 
            case '&#227;': 
             simbolo = 'ã'; 
              break; 
            case '&#228;': 
             simbolo = 'ä'; 
              break; 
            case '&#231;': 
             simbolo = 'ç'; 
              break; 
            case '&#232;': 
             simbolo = 'è'; 
              break; 
            case '&#233;': 
             simbolo = 'é'; 
              break; 
            case '&#234;': 
             simbolo = 'ê'; 
              break; 
            case '&#235;': 
             simbolo = 'ë'; 
              break; 
            case '&#236;': 
             simbolo = 'ì'; 
              break; 
            case '&#237;': 
             simbolo = 'í'; 
              break; 
            case '&#238;': 
             simbolo = 'î'; 
              break; 
            case '&#239;': 
             simbolo = 'ï'; 
              break;
            case '&#241;': 
             simbolo = 'ñ'; 
              break; 
            case '&#242;': 
             simbolo = 'ò'; 
              break; 
            case '&#243;': 
             simbolo = 'ó'; 
              break; 
            case '&#244;': 
             simbolo = 'ô'; 
              break; 
            case '&#245;': 
             simbolo = 'õ'; 
              break; 
            case '&#246;': 
             simbolo = 'ö'; 
              break; 
            case '&#249;': 
             simbolo = 'ù'; 
              break; 
            case '&#250;': 
             simbolo = 'ú'; 
              break; 
            case '&#251;': 
             simbolo = 'û'; 
              break; 
            case '&#252;': 
             simbolo = 'ü'; 
              break; 
            case '&#253;': 
             simbolo = 'ý'; 
              break; 
			default:
			  break;
	    }
	    i+=6;		
		if (simbolo != caracter){
			palabra = palabra+simbolo;
		}
	}
  }
    return palabra;
}
// OMC FIN 29/04/2008

var result;
 var ventana;


function abrirDlg(location,w,h,title,type,resizable,fnRetEsp,idElemSesion)
{			
	if (resizable==null){resizable="no";}
	if (NavegadorIE())
	{
		var WinSettings = "dialogHeight:" +h +"px;dialogWidth:" +w +"px ; edge: Raised; center: Yes; help: No; resizable:" + resizable + "; status: No;"
		var theurl=location
		var title=title
		var arg=null;
		var referrer=window.location.pathname
		var MyArgs ={window:window,scroll:true,title:title,url:theurl,referrer:referrer,argument:arg}
		result= window.showModalDialog('../../js/DialogHandler/DialogHandler.html',MyArgs, WinSettings);
  	
		
		if (type==null)
		{
			evaluarPostBack(result);
		}
		else
		{
			if (type==1)
			{
				evaluarPostBack(result);
			}
			if (type==2)
			{
				establecerValor(result,fnRetEsp);
			}
		}
	}
	else
	{
	 result=null;
		ventana=abrirVentanaModal(location,w,h,null,resizable,title);
		//ventana.document.write("<TITLE>"+title+"</TITLE>");
		setTimeout("evaluaCierreDialogo("+ type + ",'" + fnRetEsp + "','" + idElemSesion + "')",500);
	}
		
}

function abrirVentanaModal(location,w,h,scroll,resizable,title)
{
	var l=0;
	var t=0;

	if (w!=0) l = (screen.availWidth - w) / 2;
	else w=screen.availWidth;
	
	if (h!=0) t = (screen.availHeight - h) / 2;
	else h=screen.availHeight;
	
	if (scroll==null){scroll="yes";}
	if (resizable==null){resizable="no";}
	var winprops = 'title=' + title + ',modal=1,dialog=1,dependant=1,directories=no, toolbar=no,menubar=0, scrollbars='+ scroll+',status=no,resizable=' + resizable +', height='+h+',width='+w+',top='+t+',left='+l+'w';
	var f = window.open(location,"_blank", winprops);
	return f;
 }
function evaluaCierreDialogo(type,fnRetEsp,idElemSesion) {
	var dialog = ventana;
	if ( dialog != null ) {
		if ( dialog.closed || result != null ) {
			if (type==null)
			{
				evaluarPostBack(result);
			}
			else
			{
				if (type==1)
					{
					evaluarPostBack(result);
				}
				if (type==2)
				{
					establecerValor(result,fnRetEsp);
				}
			}
		} 
		else {
		  try{
			 if ( dialog.screen.top < 0 ) { establecerFoco();	}
      }
      catch(ex) { }
			setTimeout("evaluaCierreDialogo("+ type + ",'" + fnRetEsp + "','" + idElemSesion + "')",500);
		}
	}
}

function evaluarPostBack(result)
{
	if (result)
	{ 
			realizarPostBack();
	}
}
function establecerValor(result,fnRetEsp)
{
    m_absResDlg=result;
    if ((fnRetEsp) && (fnRetEsp!=undefined) && (fnRetEsp.length>0)) eval(fnRetEsp);
}

function establecerResultado(r)
{
	result=r;
}

function establecerFoco(e) {
	var dialog = ventana;
	if ( dialog != null && !dialog.closed ) {
		dialog.focus();
		if ( window.event ) {
			window.event.cancelBubble = true;
		}
		if ( e && e.stopPropagation ) {
			e.stopPropagation();
		}
		if ( typeof ( dialog.establecerFoco ) != "undefined" ) {
			dialog.establecerFoco(e);
		}
		return false;
	}
	return true;
}
function getValorRetornoDlg()
{
    if ((m_absResDlg) && (m_absResDlg!=undefined)) return m_absResDlg;
    else return '';
}

 function InsertAutoComplete()
	{	
		//ECA >> Función Ajax que se conectará con el WebService y devolverá los resultados  para completar el autocompletador.
		
		var iCampo, jSubCampo, NumSubCampos;
		var NombresSubCampos = "";
		var NomSubCamp = "";
		var sNombreSubCampo="";
		var NomSubCampBD = "";
		var VisibleAutoComplet = "";
		var TipoDatoSubCampo = "";
		//var NumSubCampos;
		//Guardamos la información de todos los campos para pasarsela por url.
		//A nivel de CAMPOS
		for (iCampo=0; iCampo<= aCampoAjax.length-1; iCampo++)
		{
		sNombreCampo = aCampoAjax[iCampo];

		//Guardamos informacion necesaria del control bajo el cual se realizara la consulta dentro del autocompletador. 
		//Es decir, el primer subcampo será el que 'mandará'
		NomSubCamp = "NombreSubCampo0=" + sNombreCampo;
		NomSubCampBD = "NombreCampoBD0=" + aDetalleAjax[sNombreCampo]['campoBD'][0];
		VisibleAutoComplet = "visibleCompletador0=" + aDetalleAjax[sNombreCampo]['visibleComplet'][0];
		TipoDatoSubCampo = "tipoDatos=" + aDetalleAjax[sNombreCampo]['tipoDato'][0];
		
		NumSubCampos = aDetalleAjax[sNombreCampo]['campoForm'].length
			//A nivel  de subcampos
			for(jSubCampo=1; jSubCampo<=NumSubCampos-1; jSubCampo++)
			{
				//Aqui guardamos el nombre del campo dentro del formulario, asi con el nombre del campo dentro de la base de datos.
				NomSubCamp= NomSubCamp + "&NombreSubCampo"+jSubCampo+ "=" + aDetalleAjax[sNombreCampo]['campoForm'][jSubCampo];
				NomSubCampBD = NomSubCampBD + "&NombreCampoBD"+jSubCampo+ "=" + aDetalleAjax[sNombreCampo]['campoBD'][jSubCampo];
				VisibleAutoComplet = VisibleAutoComplet + "&visibleCompletador"+jSubCampo+ "=" + aDetalleAjax[sNombreCampo]['visibleComplet'][jSubCampo];
				TipoDatoSubCampo = TipoDatoSubCampo + "&tipoDatos"+jSubCampo+ "=" + aDetalleAjax[sNombreCampo]['tipoDato'][jSubCampo];
			}

			var urlASP= "../../forms_base/ConsultaAJAX.asp?codigoWeb=" + aDetalleAjax[sNombreCampo]['web'] + "&codigoConsulta=" +aDetalleAjax[sNombreCampo]['met'] + "&tipo=" + aDetalleAjax[sNombreCampo]['tpc'] + "&WebService=" + aDetalleAjax[sNombreCampo]['ws'] + "&NumSubCampos=" + NumSubCampos + "&" + NomSubCamp + "&" + NomSubCampBD + "&" + VisibleAutoComplet + "&" + TipoDatoSubCampo + "";
			var idtargetDIV='targetLst_' + sNombreCampo;
			var htmltargetDiv='<div id="'+idtargetDIV+'" class="auto_complete" ></div>';
			
				var getItemUpdate= function(resp){
				//Cargamos los datos del item seleccionado.
				//en el tag ul de la lista tendremos la información sobre el nombre d elos campos que componen este control ajax, para 
				//insertar la información, así como el numero de campos que existen.
	    		var oNode=resp //document.getElementById(resp.id);
				var NumSubCampos = oNode.parentNode.getAttribute("NumSubCampos")
				var sLista = oNode.parentNode.getAttribute("listaCampos") 
				var aLista = sLista.split('|');
				var i, CampoSeleccion;
				
					//Por cada campo que contiene este control Ajax, recogeremos el valor seleccionado y lo insertaremos 
					//en la caja de texto correspondiente.
					for(i=0; i <= NumSubCampos-1; i++)
					{
					CampoSeleccion = document.getElementById(aLista[i]);
					CampoSeleccion.value=oNode.getAttribute(aLista[i])
					}

				}
			new Insertion.After(sNombreCampo, htmltargetDiv);
			new Ajax.Autocompleter(sNombreCampo, idtargetDIV, urlASP, {updateElement: getItemUpdate});
		}  	

    }