//<script language="javascript">
//<!--
// cargas de código externo al final

window.onerror=null;

// Variables globales para saber que navegador se está usando
var GK = ((document.getElementById && !document.all) ? true : false);
var IE = ((document.all) ? true : false);
var gNv = DevolverNivel();

var gEnVentana = ((window.name == 'VentanaV' || ParametroURL('presentar') == 'marco') ? true : false)

document.write('<script src="'+gNv+'jquery.js"></script>');


//alert('GK: ' + GK + ', IE ' + IE);

// var anchoVentana = (GK ? window.innerHeight : document.body.clientHeight);
// var altoVentana = (GK ? window.innerWidth : document.body.clientWidth + 16); // Lo del 16 es por la barra de desplazamiento. Si no hay barra el resultado es el mismo. Hay que suponer que para Height es lo mismo

	// Experimento clase kukis. Ver Obtener y Definir
	//-------------------------
	var claseKuki = function(nombre, valor, expira, directorio, dominio, segura) {

		/* Define cookies. Si expira = -1 elimina la kuki.
		 =========================================================== */
		this.E = function (nombre, valor, expira, directorio, dominio, segura) {
			if (expira) {
				var date = new Date();
				date.setTime(date.getTime()+(expira*24*60*60*1000));
			};
			directorio = '/'; // fuerzo todas al raíz
			document.cookie = nombre + '=' + escape(valor) +
			(expira ? ';expires=' + date.toGMTString() : '') +
			(directorio ? ';path=' + directorio : '') + 
			(dominio ? ';domain=' + dominio : '') +
			(segura ? ';secure' : '');
		}; //-------------------------
	
		this.L = function (nombre)  {
			var k = document.cookie;
			var i = k.indexOf(nombre + '=');
			var l = i + nombre.length+1;
			if ((!i) && (nombre != k.substring(0, nombre.length))) return '';
			if (i == -1) return '';
			var f = k.indexOf(';', l);
			if (f == -1) f = k.length;
			return unescape(k.substring(l, f));
		}; //-------------------------
	
	};
	var kuki = new claseKuki();
	//-------------------------

/* Define cookies. Si expira = -1 elimina la kuki.
 =========================================================== */
function Definir(nombre, valor, expira, directorio, dominio, segura) {
	kuki.E(nombre, valor, expira, directorio, dominio, segura);
}
// ====================

/* Lee Cookies
 =========================================================== */
function Obtener(nombre)  {
	return kuki.L(nombre);
}
// ====================

/* Devuelve verdadero si Id se corresponde con
	un objeto del documento y falso si se trata de 
	cualquier otra cosa
============================================*/
function isObject(Id) {
	if (document.getElementById(Id) != null) return true;
	return false;
} /* isObject */
// ====================

/* Devuelve el tipo de directiva HTML a la que hace
	referencia el ID o falso si no existe el ID en el ducumento
============================================*/
function tagID(Id) {
	try {var test = eval('document.getElementById("' + Id + '").tagName');}
	catch(e) {return false;}
	return test;
} /* tagID */
/* ============================================*/

/* Dibuja una ventana con el contenido indicado en url.
Primero la crea vacía y la cierra para poder abrirla definitivamente
con las dimensiones que se indiquen en los parámetros
20071219 - Debido a los problemas que da con muchos bloqueadores 
           de ventanas se desactiva esa funcionalidad.
 =========================================================== */
function Ventana(url, pxAncho, pxAlto, pxDesdeIzquierda, pxDesdeArriba, Barras, CambiarTamanho, NombreVentana) {

	var DefinicionV = 'menubar=0' +
		' ,toolbar=0' +
		' ,location=0' +
		' ,status=0' +
		' ,directories=0' +
		' ,scrollbars=' + ((Barras) ? '0' : '1') +
		' ,resizable=' + ((CambiarTamanho) ? '0' : '1') +
		' ,width=' + ((pxAncho) ? pxAncho : '800') +
		' ,height=' + ((pxAlto) ? pxAlto : '600') +
		' ,left=' + ((pxDesdeIzquierda) ? pxDesdeIzquierda : '100') +
		' ,top=' + ((pxDesdeArriba) ? pxDesdeArriba : '100')
	// VentanaV = window.open('','VentanaV',DefinicionV);
	// VentanaV.close();
	VentanaV = window.open(url, ((NombreVentana) ? NombreVentana : 'VentanaV'), DefinicionV);
	VentanaV.focus();
}
// ====================

/* Abre una ventana independiente con nombre aleatorio para evitar que se interfiera con otras ventanas de contenido
 =========================================================== */
function VentanaI(url, pxAncho, pxAlto, pxDesdeIzquierda, pxDesdeArriba, Barras, CambiarTamanho) {
	Ventana(url, pxAncho, pxAlto, pxDesdeIzquierda, pxDesdeArriba, Barras, CambiarTamanho, 'Ventana'+ Aleatorio(1000, 9999))
}
// ====================

/* Abre una ventana directamente sin las consideraciones anteriores
20071219 - se mantiene por compatibilidad
 =========================================================== */
function VentanaD(url, pxAncho, pxAlto, pxDesdeIzquierda, pxDesdeArriba, Barras, CambiarTamanho) {
	Ventana(url, pxAncho, pxAlto, pxDesdeIzquierda, pxDesdeArriba, Barras, CambiarTamanho)
}
// ====================

/* Provee de enlaces para presentar un enlace al glosario de la palabra
 =========================================================== */
function Glosario(Definicion, ReferenciaInterna) {

	d = new String(Definicion);
	d = d.toLowerCase();
	var url = DevolverNivel() + 'glosario/' + d.charAt(0) + 
			'/' + d.toLowerCase() + '.htm' +
			(ReferenciaInterna ? '#' + ReferenciaInterna : '');

	var DefinicionV = 'menubar=0' +
		' ,toolbar=0' +
		' ,location=0' +
		' ,status=0' +
		' ,directories=0' +
		' ,scrollbars=1' +
		' ,resizable=0' +
		' ,width=500' +
		' ,height=400' +
		' ,left=100' +
		' ,top=100';

	VentanaV = window.open(url ,'VentanaV', DefinicionV);
	VentanaV.focus();

}

// ====================

/* Provee de enlaces para abrir una ventana con el artículo indicado
 =========================================================== */
function Articulo(Articulo) {

	Articulo = vbLcase(Articulo);
	switch(vbLeft(Articulo, 2)) {
		case 'op':
			seccion = 'opinion/'; 
		break;
		case 'lm':
			seccion = 'limites/'; 
		break;
		case 'f2':
			seccion = 'varios/firmas/'; 
		break;
		case 'cx':	// el prefijo debe ser "cx_" para la sección de comics
			seccion = 'comics/'; 
			Articulo = vbReplace(Articulo, 'cx_', '');
		break;
		case 'at': // el prefijo debe ser "at_" para la sección de Ángel Torres
			seccion = 'autores/atq/'; 
			Articulo = vbReplace(Articulo, 'at_', '');
				switch(vbLeft(Articulo, 3)){
					case 'oe_':	// dentro de "at_", "sg_" para el orden
						seccion = seccion + 'elorden/'; 
						Articulo = vbReplace(Articulo, 'oe_', '');
							switch(vbLeft(Articulo, 3)) {
								case 'nv_':	 // dentro de "oe_", "nv_" para las novelas
									seccion = seccion + 'titulos/'; 
									Articulo = vbReplace(Articulo, 'nv_', '');
								break;
								case 'dc_':	 // dentro de "oe_", "dc_" para los documentos
									seccion = seccion + 'documentos/'; 
									Articulo = vbReplace(Articulo, 'dc_', '');
								break;
								default:
								break;
							} 
					break; // oe_
					default:
					break;
				} 
		break; // at_
		case 'au': // el prefijo debe ser "au_" para la sección de autores
			seccion = 'autores/'; 
			Articulo = vbReplace(Articulo, 'au_', '');
		break;
		case 're': // el prefijo debe ser "re_" para la sección de relatos
			seccion = 'relatos/'; 
			Articulo = vbReplace(Articulo, 're_', '');
		break;
		case 'se': // el prefijo debe ser "se_" para la sección de series
			seccion = 'series/'; 
			Articulo = vbReplace(Articulo, 'se_', '');
		break;
		case 'cl': // el prefijo debe ser "cl_" para la sección de Colaboradores
			seccion = 'varios/colaboradores/'; 
			Articulo = vbReplace(Articulo, 'cl_', '');
		break;
		case 'qs': // el prefijo debe ser "qsq_" para la sección de quien es quien
			seccion = 'varios/qsq/'; 
		break;
		case 'pe': // el prefijo debe ser "pe_" para la sección de Películas
			seccion = 'pelis/'; 
			Articulo = vbReplace(Articulo, 'pe_', '');
		break;
		case 'gw': // el prefijo debe ser "gw_" para la sección de G.H.White
			seccion = 'autores/ghw/'; 
			Articulo = vbReplace(Articulo, 'gw_', '');
				switch(vbLeft(Articulo, 3)){
					case 'sg_':	// dentro de "gw_", "sg_" para la Saga
						seccion = seccion + 'lasaga/'; 
						Articulo = vbReplace(Articulo, 'sg_', '');
							switch(vbLeft(Articulo, 3)) {
								case 'nv_':	 // dentro de "sg_", "nv_" para las novelas
									seccion = seccion + 'novelas/'; 
									Articulo = vbReplace(Articulo, 'nv_', '');
								break;
								case 'rz_':	 // dentro de "sg_", "rz_" para las razas
									seccion = seccion + 'razas/'; 
									Articulo = vbReplace(Articulo, 'rz_', '');
								break;
								case 'pl_':	 // dentro de "sg_", "pl_" para planetas
									seccion = seccion + 'planetas/'; 
									Articulo = vbReplace(Articulo, 'pl_', '');
								break;
								case 'pr_':	 // dentro de "sg_", "pr_" para personajes
									seccion = seccion + 'person/'; 
									Articulo = vbReplace(Articulo, 'pr_', '');
								break;
								case 'tc_':	 // dentro de "sg_", "tc_" para tecnología
									seccion = seccion + 'tecnos/'; 
									Articulo = vbReplace(Articulo, 'tc_', '');
								break;
								default:
								break;
							} 
					break; // sg_
					case 'nv_':	// dentro de "gw_", "nv_" para las novelas individuales
						seccion = seccion + 'novelas/'; 
						Articulo = vbReplace(Articulo, 'nv_', '');
					break; // nv_
					case 'ms_':	// dentro de "gw_", "mn_" para las miniseries
						seccion = seccion + 'minis/'; 
						Articulo = vbReplace(Articulo, 'ms_', '');
					break; // ms_
					default:
					break;
				} 
		break; // gw_
		default:
			s = '';
		break;
	}
	
	ri = vbSplit(Articulo, "#"); // 0, el propio artículo, si hay referencia interna será el 1
	var url = DevolverNivel() + seccion + ri[0] + '.htm' + (ri.length == 2 ? '#' + ri[1] : '');
	var DefinicionV = 'menubar=0' +
		' ,toolbar=0' +
		' ,location=0' +
		' ,status=0' +
		' ,directories=0' +
		' ,scrollbars=1' +
		' ,resizable=1' +
		' ,width=800' +
		' ,height=600'+
		' ,left=100'+
		' ,top=100';

	VentanaV = window.open(url ,'VentanaV', DefinicionV);
	VentanaV.focus();

}

/* Simula la instrucción análoga en otros lenguajes de programación
 =========================================================== */
function print (texto) {
	document.write(texto);
}
// ====================

/* Para depurar, escribe valor
 =========================================================== */
function Printd (Valor) {
	document.writeln('*' + Valor + '*<br />');
}
function printd (Valor) {Printd (Valor);} //alias
// ====================

/* Para depurar, escribe la variable y su valor
 =========================================================== */
function Printdx (Variable, Valor) {
	document.writeln('<b>*' + Variable + ':</b>&nbsp;' + Valor + '*<br />');
}
function printdx  (Variable, Valor) {Printdx  (Variable, Valor);} //alias
// ====================


/* Devuelve un número entero comprendido entre inferior y superior
 ==================== */
function Aleatorio(inferior,superior) {
	numPosibilidades = superior - inferior;
	aleat = Math.random() * numPosibilidades;
	aleat = Math.round(aleat);
	return parseInt(inferior) + aleat;
}
// ====================

// ====================
function QuitarAcentos(Txt) {

	Txt = String(Txt); 
	var cAc = new Array ('ñ', 'á', 'é', 'í', 'ó', 'ú', 'ä', 'ë', 'ï', 'ö', 'ü', 'à', 'è', 'ì', 'ò', 'ù', 'â', 'ê', 'î', 'ô', 'û');
	var sAc = new Array ('n', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u');

	for (q = 0; q < cAc.length; q++) {
		Txt = eval('Txt.replace(/'+cAc[q]+'/g, "'+sAc[q]+'");');
		Txt = eval('Txt.replace(/'+vbUcase(cAc[q])+'/g, "'+vbUcase(sAc[q])+'");');
	}
	
	return Txt;

}
// ====================

// ====================
function Cutes(Txt, Accion) {

	Txt = String(Txt); 
	var cCy = new Array ('&Ntilde;', '&Aacute;', '&Eacute;', '&Iacute;', '&Oacute;', '&Uacute;', '&Auml;', '&Euml;', '&Iuml;', '&Ouml;', '&Uuml;', '&Agrave;', '&Egrave;', '&Igrave;', '&Ograve;', '&Ugrave;', '&Acirc;', '&Ecirc;', '&Icirc;', '&Ocirc;', '&Ucirc;');
	var cAc = new Array ('ñ', 'á', 'é', 'í', 'ó', 'ú', 'ä', 'ë', 'ï', 'ö', 'ü', 'à', 'è', 'ì', 'ò', 'ù', 'â', 'ê', 'î', 'ô', 'û');

	for (q = 0; q < cAc.length; q++) {
		if (Accion == 'quitar') {
			Txt = eval('Txt.replace(/'+vbLcase(cCy[q])+'/g, "'+cAc[q]+'");');
			Txt = eval('Txt.replace(/'+cCy[q]+'/g, "'+vbUcase(cAc[q])+'");');
		} else {
			Txt = eval('Txt.replace(/'+cAc[q]+'/g, "'+vbLcase(cCy[q])+'");');
			Txt = eval('Txt.replace(/'+vbUcase(cAc[q])+'/g, "'+cCy[q]+'");');
		}
	}

	return Txt;

}
// ====================

// ====================
function ParametroURL(nombre) {
	//se inicializan las cadenas como tales
	nombre = String(nombre);
	var lineaURL = String(document.location.search);
	//en enanúsculas para no incordiar
	nombre = nombre.toLowerCase(); 
	lineaURL = lineaURL.toLowerCase(); 
	//se averigua donde acaba el nombre del parámetro 
	var inicio = lineaURL.search(nombre+"=");
	if (inicio < 0) return('');
	inicio = inicio + nombre.length + 1;
	//extraigo la parte del final de la cadena
	lineaURL = lineaURL.substr(inicio);
	//busco el separador. Si no existe el parámetro es único o el último.
	var fin = lineaURL.search("&");
	//si el separador existe extraigo sólo esa parte de la cadena
	if (fin >= 0) lineaURL = lineaURL.substr(0,fin);
	//sustituyo los caracteres "de transporte" y devuelvo la cadena
	return unescape(lineaURL);
}
// ====================

/* Cambia el origen del dato del elemento Id  
 si no se especifica la ruta se busca el origen en /imag
 si no se especifica la extensión se entiende que es un archivo GIF
 =========================================================== */
function CambiaSRC(Imagen, RefElemento)
{

	Imagen = String(Imagen);
	if (Imagen.search('/') == -1) Imagen = DevolverNivel() + 'imag/' + Imagen;
	if (Imagen.charAt(Imagen.length-4) != ('.')) Imagen = Imagen + '.gif';
	document.getElementById(RefElemento.id).src = Imagen;	

} /* Fin CambiaSRC
======================================*/

/* Según las definiciones de cada enlace con etiqueta, pone 
	la imagen normal
 =========================================================== */
function normal(nombreImagen) {

	imagen = eval(nombreImagen + "n.src");
	document [nombreImagen].src = imagen;

} // ====================

/*	Según las definiciones de cada enlace con etiqueta, pone 
	la imagen con brillo o alternativa
 =========================================================== */
function brillo(nombreImagen) {
	
	imagen = eval(nombreImagen + "b.src");
	document [nombreImagen].src = imagen;

} // ====================

/* Devuelve el nivel de la página referenciada respecto a la 
 página de bienvenida
 =========================================================== */
function DevolverNivel() {

	var PPB, Camino = String(location.pathname);
	Camino = Camino.toLowerCase();
	Camino = Camino.replace(/\\/gi, '/');
	
	if (Camino.charAt(0) == '/') Camino = Camino.substring(1 ,Camino.length);
	if (Camino.indexOf('sitio/') != -1) Camino = Camino.substring(Camino.indexOf('sitio/') + 7,Camino.length);

	Campos = Camino.split('/');
	PPB = '';
	for (n = 1; n <= (Campos.length -1); n++) PPB = PPB + '../';

	return PPB;	 

} // ====================

/* Muestra un enlace con el iconillo de enlaces o una banderita 
o nada, dependiendo del parametro Icono.
 =========================================================== */
function Enlace(Descripcion, Direccion, Nivel, Target, Icono) {
	
	if (Direccion.length == 0) {
		print (Descripcion);
		return;
	}
	if  (!Icono) Icono = '';
	Icono = String(Icono);
	
	if (Direccion.charAt(0) == ".") {
		Direccion = Direccion;
	} else {
		if (Direccion.search("http://") == -1 && Direccion.search("https://") == -1) {
			Direccion = "http://" + Direccion
		}
	}

	if (Descripcion.length == 0) {
		Descripcion = Direccion;
	}

	if (Icono != 'no') {
		var Ico = '', Alto, Ancho;
		switch(Icono) {
			case '':
				Ico = '_enl'; 
				Alto = 13; 
				Ancho = 20;
			break;
			case 'si':
				Ico = '_enl'; 
				Alto = 13; 
				Ancho = 20;
			break;
			default:
				Ico = 'mnu_' + Icono; 
				Alto = 16;
				Ancho = 16;
			break;
		}	
		if (gEnLista('eex', Icono) == false) {
			print ('<img src="' + DevolverNivel() + 'imag/' + Ico + '.gif" alt="Enlace" title="Enlace" style="width:' + Ancho + 'px; height:' + Alto + 'px; margin:0 3 0 3;" />')
		}
	}
	if (Target == 'ventana') {
		print ('<a href="javascript:void(null)" class="ven" ' + 
			' onclick="VentanaD(\'' + Direccion + '\',\'800\',\'600\')">' + Descripcion + '</a>');

	} else {
		print ('<a href="' + Direccion + '"' + 
				(Icono == 'eex' ? ' class="eex" ' : '') + 
				'" target="' + Target + '">' + Descripcion + '</a>');
	}
} // ====================

/* Presenta la posibilidad de ampliar la información en varios buscadores a partir
de la coincidencia exacta de los elementos de Lista (separados por comas)
Prefijos añaden XXX de a la leyenda sin añadirlo a la búsqueda
 ====================================================== */
function BuscarMas(Lista, EnElSitio, Delimitar) {

	var l = vbSplit(Lista, ',');
	var Busca = '';
	var Leyenda = '';
	var dlm = (Delimitar == false ? '' : '%22');
	for (b=0; b < l.length; b++) {
		Busca = Busca + (Busca != '' ? '+': '') + dlm + vbReplaceX(Cutes(l[b], 'quitar'), ' |&', '+|%26') + dlm;
		Leyenda = Leyenda + (Leyenda != '' ? ', ': '') + l[b];
	}
	var noWikis = (EnElSitio ? '' : '%20-site:wikipedia.org%20-site:wikia.com%20-descarga%20-descargas%20-descargar');

	l[0] = vbReplace(l[0], '#de', ' de '); Busca = vbReplace(Busca, '#de', '');
	l[0] = vbReplace(l[0], '#la', ' la '); Busca = vbReplace(Busca, '#la', '');
	l[0] = vbReplace(l[0], '#el', ' el '); Busca = vbReplace(Busca, '#el', ''); 
	l[0] = vbReplace(l[0], '#las', ' las '); Busca = vbReplace(Busca, '#las', ''); 
	l[0] = vbReplace(l[0], '#los', ' los '); Busca = vbReplace(Busca, '#los', '');
	l[0] = vbReplace(vbReplace(vbReplace(vbTrim(l[0]), '    ', ' '), '   ', ' '), '  ', ' ');
	
	var BuscaSA = QuitarAcentos(Busca);	// sin acentos

	document.write ('<hr class="hrlegalsup" />\n'+
		'<div class="cb c_origen medio" style="margin: 20px 3px 3px 3px; padding: 3px 5px;">' +
		'Para una referencia m&aacute;s amplia sobre <b>' + l[0] + '</b> ' + (EnElSitio ? 'en el <span class="sitio">Sitio</span>' : '') + '  puedes consultar:<br />' +

		'<a href="http://www.google.es/search?hl=es&as_qdr=all&q=' + Busca + noWikis + (EnElSitio ? '+site%3Awww.ciencia-ficcion.com' : '') + '&btnG=Buscar&meta=" target="blank">' +
			'<img src="'+gNv+'imag/_googleico16.gif" alt="Google" title="Buscar ' + Leyenda + ' en Google" class="ico16 icoBusca" />' +
		'</a>' +
		
		'<a href="http://es.search.yahoo.com/search?p=' + BuscaSA + noWikis + (EnElSitio ? '+site%3Awww.ciencia-ficcion.com' : '') + '&fr=yfp-t-501&ei=UTF-8&meta=vl%3D" target="blank">' +
			'<img src="'+gNv+'imag/_yahoo16.gif" alt="Yahoo" title="Buscar ' + Leyenda + ' en Yahoo!" class="ico16 icoBusca" />' +
		'</a>' +

		'<a href="http://www.bing.com/search?q=' + Busca + noWikis + (EnElSitio ? '+site%3Awww.ciencia-ficcion.com' : '') + '&form=QBLH" target="blank">' +
			'<img src="'+gNv+'imag/_msbing16.gif" alt="MS Bing" title="Buscar ' + Leyenda + ' en MS Bing" class="ico16 icoBusca" />' +
		'</a>' +

		'<a href="http://es.ask.com/web?q=' + BuscaSA + noWikis + (EnElSitio ? '+site%3Awww.ciencia-ficcion.com' : '') + '&qsrc=0&o=312&l=dir&dm=lang" target="blank">' +
			'<img src="'+gNv+'imag/_ask16.gif" alt="Ask" title="Buscar ' + Leyenda + ' en Ask" class="ico16 icoBusca" />' +
		'</a>' +

		'<a href="http://buscar.hispavista.com/?cadena=' + BuscaSA + (EnElSitio ? '&site=Awww.ciencia-ficcion.com' : '') + '&spcctx=notfar&zone=all&wordforms=all&lang=all&mime=all&numdoc=10" target="blank">' +
			'<img src="'+gNv+'imag/_hispavista16.gif" alt="HispaVista" title="Buscar ' + Leyenda + ' en HispaVista" class="ico16 icoBusca" />' +
		'</a>' +

		'<a href="http://yandex.com/yandsearch?text=' + BuscaSA + (EnElSitio ? '&site=Awww.ciencia-ficcion.com' : '') + '&spcctx=notfar&zone=all&wordforms=all&lang=all&mime=all&numdoc=10" target="blank">' +
			'<img src="'+gNv+'imag/_yandex16.gif" alt="Yandex" title="Buscar ' + Leyenda + ' en Yandex" class="ico16 icoBusca" />' +
		'</a>' +

		'<a href="http://www.baidu.com/s?ie=gb2312&bs=' + BuscaSA + noWikis + '&cl=3&f=8&wd=' + BuscaSA + (EnElSitio ? '&site=Awww.ciencia-ficcion.com' : '') + '&ct=0" target="blank">' +
			'<img src="'+gNv+'imag/_baidu16.gif" alt="Ask" title="Buscar ' + Leyenda + ' en Baidu" class="ico16 icoBusca" />' +
		'</a>' +

	'</div>\n');

}
function BuscarGoogle(Lista) {BuscarMas(Lista);} // Alias para retrocompatibilidad.
// ====================

/* Realiza una búsqueda en Google por la coincidencia exacta de los elementos de Lista (separados por comas
 =========================================================== */
function Biblioteca(Obra, Archivo, Formatos, Ubicacion) {

	var Enl = new Array();
	var ico = new Array();
	var f = vbSplit(Formatos, ',');
	if (!Ubicacion || vbLcase(Ubicacion) == 'tnet') {
		var e = vbReplace('http://personal.telefonica.terra.es/web/fjsi/BibliotecaSdCF/#a#.#f#.zip' , '#a#', vbLcase(Archivo));
	} else if (vbLcase(Ubicacion) == 'bsdcf') {
		var e = vbReplace(gNv+'autores/biblioteca/##seccion#' , '#seccion#', vbLcase(Archivo));
	}
	document.write ('<div class="cb c_origen palido" '+ 
						'style="margin: 3px; padding: 3px 5px;" '+ 
						'> '+ 
						'Disponible en forma de e-book en la <b>Biblioteca SdCF</b> '+ 
						(Obra != '' ? ' como ' : '') +
						': ');
	for (b=0; b < f.length; b++) {
		document.write ('<a href="' + vbReplace(e, '#f#', vbLcase(f[b])) + '"' + (vbLcase(Ubicacion) == 'bsdcf' ? ' target="_top"' : '') + '>' + 
						(Obra != '' ? '<b>' + Obra + '</b>' : '') +
						'<img src="'+gNv+'imag/mnu_'+vbLcase(f[b])+'.gif" ' + 
							'style="height:14px; margin: 0px 0px -3px 3px;" '+ 
							'alt="'+ vbUcase(f[b]) +'" ' + 
							'title="Disponible en formato '+ vbUcase(f[b]) + (vbUcase(f[b]) == 'PDF' ? ' especialmente diseñado para lectores de e-books o dispositivos móviles' : '') + '"' + 
							'/>'+
					'</a>\n');
	}
	document.write ('</div>\n');
	

} // ====================

/* Añade un pequeño icono para indicar que el enlace es externo
 ============================================ */
function eex() {

	pm = location.pathname;
	
	if (vbInStr(pm.toLowerCase(), '\/limites\/') != -1)	{
		print ('<img src="imag/_mnu_eex.gif" alt="Enlace Externo" title="Enlace Externo" style="width:12px; height:12px; margin:0px 1px 0px 1px;" />')
	} else {
		print ('<img src="' + DevolverNivel() + 'imag/mnu_eex.gif" alt="Enlace Externo" title="Enlace Externo" style="width:12px; height:12px; margin:0px 1px 0px 1px;" />')
	}

} // ====================

/* Añade un pequeño icono para indicar que se trata de correo electrónico
 ============================================= */
function eml() {
	print ('<img src="' + DevolverNivel() + 'imag/mnu_eml.gif" alt="Correo Electrónico" title="Correo Electrónico" style="width:12px; height:12px; margin:0px 1px 0px 1px;" />')
}// ====================

// Proporciona el enlace al ISBN-13 español a partir del 1 de enero de 2007
// si el campo DOCN contiene 'IMDB' o cISBN empieza por 'tt' el enlace 
// proporcionado será el del IMDB. si DOCN empieza por 'dd/',  en 
// DOCN hay un enlace a eldoblaje.com, se considera DOCN como el enlace a los datos de doblaje.
// 8 de julio de 2008. Los cabrones del ISBN no solo han cambiado la aplicación (que en su 
// derecho están) además han tenido los santos cojones de cambiar también los Id de los libros, 
// con los que los antiguos no sirven para la nueva aplicación. 
// ====================
function ISBN(cISBN, DOCN) {

	if (!isNaN(DOCN) && DOCN == 'mierda') {  // && DOCN != '' // Deja de funcionar el 29 de marzo de 2010
		if (vbLeft(DOCN, 2) == '00') { 
			Enlace(cISBN, 'www.mcu.es/cgi-brs/BasesHTML/isbn/BRSCGI?CMD=VERDOC&CONF=AEISPA.cnf&BASE=ISBN&DOCN=' + DOCN + '&NDOC=1&EXPBUS=((DISPONIBLE\+OR\+AGOTADO)).WDIS.\+%26\+(' + cISBN + ').WISB.', 0, '', 'eex');
		} else { // nuevo a partir de julio de 2008, solo funciona si hay una cookie de la web de MCU, vamos, por completo inusable.
			Enlace(cISBN, 'www.mcu.es/webISBN/tituloDetalle.do?sidTitul=' + DOCN + '&action=busquedaInicial&noValidating=true&POS=0&MAX=50&TOTAL=0&prev_layout=busquedaisbn&layout=busquedaisbn&language=es&params.forzaQuery=N', 0, '', 'eex');
		} 
	} else if (DOCN == 'IMDB' || vbLeft(cISBN, 2) == 'tt') {
		Enlace(cISBN, 'www.imdb.es/title/' + cISBN+ '/combined', 0, '', 'eex');
		if (vbLeft(DOCN, 3) == 'dd/') {
			print('. <b>Doblaje:</b>');
			Enlace(' <small>(es-ES)</small>', 'www.eldoblaje.com/datos/' + vbReplace(DOCN, 'dd/', ''), 0, '', 'eex');
		} else if (vbInStr(DOCN, 'd=d') != -1) {
			print('. <b>Doblaje:</b>');
			idiomas = vbSplit(DOCN, ':');
			for (n=1; n < idiomas.length; n++) {	
				parte = vbSplit(idiomas[n], '=');
				if (parte[0] == 'es-ES') Enlace(' <small>(es-ES)</small>', 'www.eldoblaje.com/datos/FichaPelicula.asp?id=' + parte[1], 0, '', 'eex');
				if (parte[0] == 'ca-ES') Enlace(' <small>(ca-ES)</small>', 'www.eldoblatge.com/fitxa/' + parte[1], 0, '', 'eex');
			}
		}	

	} else {
		Enlace(cISBN, '', 0, '', 'no');
	}
} // ====================

// ====================
function Origen(Descripcion, Direccion, Fecha)
{

	var Dir = String(Direccion);
	Dir = Dir.toLowerCase();
	Dir = Dir.replace(/http:\/\//gi, "");

	if (Dir.search("@") != -1) 
	{
		Dir = '"mailto:' + Dir + '" class="eml"';
	} else if (Dir != "" ){
		Dir = '"http://' + Dir + '" target="_blank" class="eex"';
	}
	
	print ( '<small>(' 
	+ ( (Direccion) ? '<a href=' + Dir + '>' + Descripcion + '</a>' : Descripcion)
	+ ( (Fecha) ? ', ' + Fecha : '')
	+ ')</small>' );

} // ====================

// ====================
function Correo(Direccion, Nivel){
	print ('<a href="mailto:' + Direccion + '?subject=Saludos" class="eml">' + Direccion + '</a>');
} /* Fin Correo
 =========================================================== */

// ====================
function Bandera(Pais, Idioma, Nivel){
	var PPB = DevolverNivel();
	var ps = '<img src="' + PPB + 'imag/_' + Pais + '.gif" alt="' + Pais + '" class="bandera"  />';
	var id = '<img src="' + PPB + 'imag/_' + Idioma + '.gif" alt="' + Idioma + '" class="bandera"  />';
	document.writeln (ps + ( (Idioma) ? id :'') );
}	//Fin Bandera
// ====================

// ====================
function Nuevo(){
	document.writeln ('<img src="' + DevolverNivel() + 'imag/_nuevo.gif" alt="nuevo" style="width: 33px; height: 11px; margin: 0px 5px 0px 5px;" />');
} /* Fin Nuevo
 =========================================================== */

// ====================
function Imagen(NombreImagen, Alt, Ancho, Alto) {
	IlustracionFirmas('imagen', 'no', Alt, NombreImagen, Alto, Ancho);
}
// ====================
function IlustracionFirmas(Referencia, Opinion, Alt, Imagen, Alto, Ancho){
				
	if (Referencia=='imagen') Opinion = Imagen;
	Opinion = String(Opinion);		
	Opinion = vbLcase(Opinion);
	var img;
	var al = ((Alto) ? Alto : '165');
	var an = ((Ancho) ? Ancho : '110');
	var cierraA = false;
	var PPB = DevolverNivel();
	print('<br />');

	switch (Opinion.substr(0,2)) {
		
		case 'op': 
			print('<a href="javascript:Ventana(\'' + PPB + 'opinion/' + Opinion + '.htm\',\'500\',\'400\')">');
			i = vbReplace(Opinion, 'op', '');
			img = PPB + 'opinion/imag/' + ((Imagen) ? Imagen : Opinion);
			cierraA = true;
		break;

		case 'lm': 
			print('<a href="javascript:Ventana(\'' + PPB + 'limites/' + Opinion + '.htm\',\'500\',\'400\')">');
			img = PPB + 'limites/imag/' + ((Imagen) ? Imagen : Opinion);
			cierraA = true;
		break;

		case 'au':
			print('<a href="javascript:Ventana(\'' + PPB + 'autores/' + vbReplace(Opinion, 'au_', '') + '.htm\',\'500\',\'400\')">');
			img = PPB + 'autores/fotos/' + vbReplace(Opinion, 'au_', '');
			al = '140';
			cierraA = true;
		break;

		case 'se': // Series. El prefijo debe ser 'se_', a tres caracteres
			if (Opinion.substr(0,3) == 'se_') {
				print('<a href="javascript:Articulo(\'' + Opinion + '\')">');
				img = PPB + 'series/imag/' + vbReplace(Opinion, 'se_', '');
				cierraA = true;
			}
		break;

		case 'cm': // Comics. El prefijo debe ser 'cm_', a d caracteres
			if (vbLeft(Opinion, 3) == 'cm_') {
				print('<a href="javascript:Articulo(\'' + Opinion + '\')">');
				img = PPB + 'comics/imag/' + vbReplace(Opinion, 'cm_', '');
				cierraA = true;
			}
		break;

		case 'ht': 
			print('<a href="' + Opinion + '" target="_blank">');
			if (Imagen) { //si se especifica una imagen se fuerzan los valores de PPB.
				if (PPB == '') PPB ='varios/firmas/';
				if (PPB == '../../') PPB ='';
				img = PPB + 'imag/' + Imagen;
			}
			cierraA = true;
		break;
		
		default:
			if (Imagen) { //si se especifica una imagen se fuerzan los valores de PPB.
				if (PPB == '') PPB ='varios/firmas/';
				if (PPB == '../../') PPB ='';
				img = PPB + 'imag/' + Imagen;
			}
		break;

	}

	document.write('<img src="' + img + '.jpg" alt="' + Alt + '" ' + 
			'title="' + Alt + '" ' +
			'style="width:' + an + 'px; height:' + al + 'px; ' + 
			(Referencia != 'imagen' ? 'margin:0px 10px 0px 0px; float:left;' : '') +
		'" />\n');

	if (cierraA) print('</a>');


} // ====================

// ====================
function CabeceraFirmas(Fecha){

	print('<div style="margin: 10px 0px 8px 0px;">'+
		((window == top.window) ? '<a href="index.html" target="_top" class="rotuloE sinsub">Firmas</a>' : '') +
		'<span class="serie_articulos" style="margin:0px 0px 0px 12px;">' + Fecha + '</span>\n' +
		'</div>' +
		'<hr />\n');

} // ====================

/* Devuelve el nombre del archivo de la página sin parámetros y en minúsculas.
	Si Extension es 0 se devuelve en nombre sin extensión(es), si es 1 
	o no se especifica se devuelve con extensión(es)
 =========================================== */
function NombrePagina(Extension) {
	var d = new String(document.location);
	d = d.toLowerCase(); 
	var x = d.split('/');
	d = x[x.length-1];
	x = d.split((Extension == 0 ? '.' : '?'));
	return x[0];
}// ====================

// ====================
function ObraAutor(Titulo, InfoAdicional, Editorial, Coleccion, Numero, Aaa, Comentario){
	
	print('<li>');
	if (InfoAdicional == "seccion") print('<span style="color: #600000;">');
	if (Comentario) {
		com = new String(Comentario);
		com = com.toLowerCase();
		print('<a href="javascript:void(null)" class="ven" ' + 
						' onclick="Ventana(\'../' + (vbLeft(com, 2) == 'lm' ? 'limites/' : 'opinion/') + 
						(vbLeft(com, 2) == 'lm' ? com : 'op' + vbRight('00000' + com, 5)) + 
						'.htm\', \'500\', \'400\')">');	
	}
	print('<b>' + Titulo + '</b>'+ 
					(Comentario ? '</a>' : '') +
					(InfoAdicional ? (InfoAdicional == "seccion" ? '</span>' : ', (' + InfoAdicional + ')') : '') +
					(Editorial ? ', <i>' + Editorial + '</i>' : '') +
					(Coleccion ? ', ' + Coleccion : '') +
					(Numero ? ' n&ordm; ' + Numero : '') +
					(Aaa ? ', <i>(' + Aaa + ')</i>' : '') +
				'</li>');

} // ====================

/* Devuelve "l(ocal)" si se trabaja en local o "r(ed)" si se accede
desde Internet. "a(jeno)" indica que se ejecuta desde una máquina que no 
está catalogada "s(in servidor)" que se está navegando en local sin servidor  /*
 ========================================= */
function Servidor(){

var hst = String(location.host);
var pro = String(location.protocol);
var res = String("a");

if (hst.toLowerCase() == "www.ciencia-ficcion.com" ) res = "r";
if (hst.toLowerCase() == "www.ciencia-ficcion.com.es" ) res = "r";
if (hst.toLowerCase() == "www.fjsi.es" ) res = "r";
if (hst == "213.139.7.119" ) res = "r";
if (hst == "84.20.4.39" ) res = "r";
if (hst.toLowerCase() == "i7-950" ) res = "l";
if (hst.toLowerCase() == "pb" ) res = "l";
if (hst.toLowerCase() == "hp500" ) res = "l";
if (hst.toLowerCase() == "localhost" ) res = "l";
if (hst.indexOf('192.168.', 0) != -1) res = "l";
if (hst.toLowerCase() == "127.0.0.1" ) res = "l";
if (pro.toLowerCase() == "file:" ) res = "s";

return res.toLowerCase();

}  // ====================

// ====================
function ComprobarMarcos(MostrarPublicidad, PonerSeparador){

//var dl = String(document.location);
//if (vbInStr(dl, '/novedad/') > 0 && vbInStr(dl, '#') > 0 && Servidor() != 's') {
//	var mDl = vbSplit(dl, '#');
//	location.href = DevolverNivel() + 'novedad/aldia/' + mDl[1] + '.php';
//}

if (MostrarPublicidad == false) {MostrarPublicidad = false;} else {MostrarPublicidad = true;}
var EnlaceExterno = false;
var PPB = DevolverNivel();

if (top.location != self.location) EnlaceExterno = true;  /* Si se llama desde un marco de otra página muestro la cabecera */
if (Servidor() != "a") EnlaceExterno = false; /* El propio Sitio, en local o en la red o por archivos */
if (window == top.window) EnlaceExterno = true; /* si el enlace es a pantalla completa muestro la cabecera */

var hz = document.body.offsetWidth - (IE ? 4 : 0);

	if (EnlaceExterno) {

		document.write('\n<style type="text/css">body {margin: 0px ' + (hz <= 800 ? '5' : (hz <= 1000 ? '10' : '15')) + '%;}</style>\n'+
						'<div style="border-top: 1px #F7AD84 solid; border-bottom: 1px #F7AD84 solid; padding: 5px; margin: 10px;">\n' +
						'<center>\n<a href="' + gNv + 'bienvenida.html" target="_top">\n' +
						'\t<img src="' + gNv + 'imag/_logomln.png" alt="Sitio de Ciencia-Ficción" title="Sitio de Ciencia-Ficción"'+
						' style="width:290px; height:25px;"' +
						' id="logom" onmouseout="CambiaSRC(\'_logomln.png\', this)" onmouseover="CambiaSRC(\'_logomlb.png\', this)"/></a>' +
						'<br />\n' +
						'<small>Fundado en 1997. <i>Coordina:</i> Francisco José Súñer Iglesias</small>\n</center>\n</div>\n');

		Inserciones(MostrarPublicidad);
		
		// para las secciones en las que no se preveyó cabecara propia 
		// en el caso de presentarse a pantalla completa
		// -------------------------------------------------------
		pn = vbLcase(location.pathname);
		if (vbInStr(pn, 'opinion') != -1 || vbInStr(pn, 'limites') != -1) {
			if (vbInStr(pn, 'opinion') != -1) {
				s = 'Opinión';
			} else if (vbInStr(pn, 'limites') != -1) {
				s = 'Límites';
			}							
			document.write('<a href="index.html" target="_top" class="rotuloE sinsub">' + s + '</a><hr />');
		}
		// -------------------------------------------------------

	} else {
		if (PonerSeparador != 0) document.writeln('<hr align="center" witdth="95%" />');
		if (Aleatorio(0, 1) == 0) Inserciones(MostrarPublicidad);		
	} //if

} // ====================

/* Muestra la publicidad del Sitio
 ================================================== */
function Inserciones(Insertar)
{
	
	return; 
	
	if (Servidor() == "l" || Servidor() == "s") return; // si estoy en local, ¿para que sufrir con la publicidad XD?
	
	if (!Insertar) {
		if (Aleatorio(0, 9) <= 7) Insertar = true;
	}

	//Insertar = true;
	if (Insertar)
	{
		var Anuncio = 0; // Aleatorio(0, 1);

		switch (Anuncio)
		{
			case 0: var fondo = '#FFD1A4'; var pplano = '#FFFFFF'; break;
			case 1: var fondo = '#33CC99'; var pplano = '#FFFFFF'; break;
		}
		
		var AbreMarco = '<center><div style="background-color:' + fondo + '; font-family: arial,sans-serif; font-size:10px; width:400px; height:62px; text-align:justify;">' +
					'<div style="margin-left:2px; margin-right:2px; margin-top:2px; padding-left:2px;">Enlaces patrocinados</div>' +
					'<div style="background-color:' + pplano + '; font-size:11px; height:44px; font-family:verdana,arial,sans-serif; margin-left:2px; margin-right:2px; padding-top:3px; padding-left:3px;">';

		var CierraMarco = '</div></div><hr /></center>';	
		var PPB = DevolverNivel();
		
		switch (Anuncio)
		{
			case 0:
				document.writeln (AbreMarco + 
				'<a href="' + PPB + 'varios/hp/hp.php?item=003" target="blank">' +
				'<i><b>SOMBRAS DE HONOR</b></i></a>, de <b>Eduardo Gallego</b> y <b>Guillem Sánchez</b><br />'+
				'El antiguo mal renace. Los antiguos héroes siguen muertos. <br />'+
				'<!-- a href="http://www.equiposirius.com/principal/" target="blank" -->'+
				'<b>Editorial Equipo Sirius,</b><!-- /a --> 320 páginas, 21,90 EUR<br />' + CierraMarco);
			break;
		}

	}

	return Insertar;

} // ====================

// ====================
function CambiaClaseCSS(claseCSS, propiedad, valor) {

	var TipoClase = (IE ? 'rules' : 'cssRules')
	var encontrado = false, agregar = false, a, k;
	var hojasCSS = document.styleSheets.length;

	for (h = 0; h < hojasCSS; h++) {

		var nClases = document.styleSheets[h][TipoClase].length;
		
		for (c = 0; c < nClases; c++) {
		
			var clases = document.styleSheets[h][TipoClase][c];
			
			if (clases.selectorText == claseCSS) {
					if(clases.style[propiedad]) {
						clases.style[propiedad] = valor;
					} else {
						a = h;
						k = nClases;
						agregar = true;
					}
					encontrado = true;
					break;
			}

		}
		if (encontrado) h = 999;
	}

	if (agregar || !encontrado) {
		propiedad = propiedad + ':' + valor + ';';
		if (IE) {
			document.styleSheets[a].addRule(claseCSS, propiedad);
		} else {
			document.styleSheets[a].insertRule(claseCSS + ' {' + propiedad + '}', k);
		}
	}

} // ====================

// ====================
function LegalSDCF(Autor, Fecha) {
	LegalMNC(Autor, Fecha);
} // ====================

// ====================
function LegalMNC(Autor, Fecha) {

	var Fecha = new String(Fecha);
	var sep1 = Fecha.indexOf('/', 0);
	var Dia = Fecha.substring(0, sep1);
	var sep2 = Fecha.indexOf('/', sep1 + 1);
	var Mes = Fecha.substring(sep1 + 1, sep2);
	var Aaa = Fecha.substring(Fecha.length - 2, Fecha.length);
	if (Aaa >= '90' && Aaa <= '99'){Aaa = '19' + Aaa} else {Aaa = '20' + Aaa};

	document.write('<hr class="hrlegalsup" width="50%" align="left" />\n' +
						'<p><small><b>El contenido de este texto puede ser total o parcialmente reproducido sin autorización explícita y previa del autor y bajo cualquier medio de comunicación siempre que se den las siguientes condiciones:</b></small></p>\n' +
						'<ul>\n' +
						'<li><small><b>Debe incluirse la totalidad de este pie de página.</b></small></li>\n' +
						'<li><small><b>No puede modificarse,</b> con la excepción de correcciones ortográficas, tipográficas o de traducción a otro idioma, y <b>nunca excepcionando</b> las correcciones de estilo, contextuales o gramaticales, de las cuales se hace responsable el propio autor en el texto original.</small></li>\n' +
						'<li><small><b>El autor no renuncia a sus derechos de propiedad intelectual legalmente constituidos</b> y se reserva la posible reclamación oportuna siempre que el medio en que se reproduzca reporte beneficios económicos de cualquier tipo.</small></li>\n' +
						'</ul>\n' +
						'<small>&copy; ' + Aaa + ' <b>' + Autor + '</b></small><br />\n' +
						'<small>Publicado originalmente el ' + Dia + ' de ' + NombreMes(Mes) + ' de ' + Aaa + ' en www.ciencia-ficcion.com</small><br />\n' +
						'<hr class="hrlegalinf" />\n');

} // ====================

/* Devuelve el nombre del mes, Mes debe ser un número
 =========================================================== */
function NombreMes(Mes) {

	var m = "<b>Error en funci&oacute;n *NombreMes* \"" + Mes + "\" no es un mes</b>";
	switch (parseInt(Mes, 10)){
		case 1: m = "enero"; break;
		case 2: m = "febrero"; break;
		case 3: m = "marzo"; break;
		case 4: m = "abril"; break;
		case 5: m = "mayo"; break;
		case 6: m = "junio"; break;
		case 7: m = "julio"; break;
		case 8: m = "agosto"; break;
		case 9: m = "septiembre"; break;
		case 10: m = "octubre"; break;
		case 11: m = "noviembre"; break;
		case 12: m = "diciembre"; break;
	}
	return m;
	
} // ====================

/* Muestra la fotografía con el enlace correspondiente a la ficha del QsQ.
El IndiceQsQ a cero muestra la ficha de la biografía de la seccion autores.
debiendo ser Archivo el nombre del archivo que la contiene, en ese caso, 
si "Archivo" se pasa de la forma "archivo|literal|ficha" "literal" será el "title" 
de la imagen, y si "ficha" está a 0 no se enlaza a la ficha del autor.
Si Archivo es 0 se presenta una foto neutra
Si enlace ficha está a 0 no se muestra el enlace a la ficha
=========================================================== */
function ReferenciaAutor(Titulo, IndiceQsQ, TallaFoto, Alineacion){

	var raArchivo = 0, raTitle = 1, raEnlazar = 2;
	var raC = Titulo.split("|");		
	var foto, ancho, alto, margen;
	var PPB = DevolverNivel();
	var NdxQsQ = String(IndiceQsQ);

	NdxQsQ = '000000' + NdxQsQ.replace(/\s/gi, '');
	NdxQsQ = NdxQsQ.substring(NdxQsQ.length - 4, NdxQsQ.length);
	NdxQsQ = (Titulo == '0' ? '0000' : NdxQsQ);
	var Ruta = PPB + 'varios/qsq/fotos/qsq_' + NdxQsQ + '.jpg';
	if (vbInStr(Titulo, "/") != -1) {
		Ruta = raC[raArchivo];
		Titulo = raC[raTitle];
	}

	margen = '5px 10px 0px 10px';
	switch (TallaFoto) {
		case 'm': foto = NdxQsQ + 'p'; ancho = '50'; alto = '64'; margen = '2px 4px 4px 0px'; break;
		case 'p': foto = NdxQsQ + 'p'; ancho = '70'; alto = '90'; break;
		default: foto = NdxQsQ; ancho = '110'; alto = '140'; break;
	}

	switch (Alineacion) {
		case 'i': Alineacion = 'left'; break;
		case 'c': Alineacion = 'center'; break;
		default : Alineacion = 'right'; break;
	}

	if (IndiceQsQ == 0) { // Bios autores
		raC[raArchivo] = raC[raArchivo].toLowerCase();
		print('\n<img src=\"' + PPB + 'autores/fotos/' + raC[raArchivo] + '.jpg" ' +
			'alt="' + raC[raArchivo] + '.jpg" title="'+ (raC[raTitle] ? raC[raTitle] : raC[raArchivo]) + '" ' +
			(raC[raEnlazar] != '0' ? 'onclick="Ventana(\'' + PPB + 'autores/' + raC[raArchivo] + '.htm\', \'800\', \'600\');" ' : '') +
			'style="width:' + ancho + 'px; height:' + alto + 'px; margin:' + margen + '; float:' + Alineacion + '; ' + 
			(raC[raEnlazar] != '0' ? 'cursor:pointer; ' : '') + '"' +
		'/>');

	} else { // Quien es quien
		print('\n<img src=\"' + Ruta + '" ' +
			(Titulo != '0' ? 'alt="'+ Titulo + '" title="'+ Titulo + '" ' : '') +
			(Titulo != '0' ? 'onclick="Ventana(\'' + PPB + 'varios/qsq/qsq_' + NdxQsQ + '.htm\', \'450\', \'300\');" ' : '') +
			'style="width:' + ancho + 'px; height:' + alto + 'px; margin:' + margen + '; float:' + Alineacion + '; cursor:pointer;" ' +
			'/>');
	}

} // ====================

/* Provee el enlace correspondiente para acceder al comentario 
	del artículo 
=========================================================== */
function Comentario(Articulo, Tipo, Titulo, Autor, MostrarContador, ContarComentarios)
{

	if (Servidor() == "s") return;

	kuki.E("c_d", location.href);

	var PPB = DevolverNivel();
	var pronombre = "este";
	if (!Tipo) {Tipo = "art&iacute;culo";}
	if (gEnLista("tira, entrevista, noticia, definición, definici&oacute;n", Tipo)) pronombre = "esta";
	if (!Titulo) {Titulo = "";}
	if (!Autor || Tipo == "noticia") Autor = "";
	print('<img src=\"' + PPB + 'imag/_mnu_est.gif\" alt=\"*\" class=\"estr\" />');
	print('<a href=\"javascript:void(null)\"');
	if (Articulo == 'comentamos') {
		print(' onclick=\"Ventana(\'' + PPB + 'varios/comentarios/_comentarios.php?cmd=comentamos\', \'600\', \'500\')\"' +
				' class=\"comentario\"">Comentamos...</a>' +
				'<a href="' + PPB + 'comentarios.rss.xml">' +
				'<img src="' + PPB + 'imag/_mnu_rss.gif" alt="RSS" title="Los comentarios en RSS" style="margin: 0px 0px -3px 2px; width: 14px; height: 14px;">' +
				'</a>');
	} else {
		
		print(' onclick=\"Ventana(\'' + PPB + 'varios/comentarios/_comentarios.php' + 
				'?articulo=' + escape(Articulo) + 
				'&titulo=' + escape(Titulo) + 
				'&autor=' + escape(Autor) + '\', \'600\', \'500\')\"' +
				' class=\"comentario\">Comentar ' + pronombre + ' ' + Tipo + '</a>');

		if ((isNaN(parseInt(ContarComentarios)) ? 1 : ContarComentarios) != 0) {
			print ('<script src="' + PPB + 'varios/comentarios/_comentarios.php' +
					'?cmd=cuenta' +
					'&articulo=' + escape(Articulo) + '">' +
					'</script>\n');
		}

	}

	var diu = true;
	diu = ((vbInStr(vbLcase(document.title), 'bienvenida') != -1) ? false : diu);
	diu = ((vbInStr(vbLcase(document.location), '/novedad/') != -1) ? false : diu);
	diu = ((vbInStr(vbLcase(document.location), '/biblioteca/') != -1) ? false : diu);
	if (diu && Servidor() == "r") {
		Title = encodeURIComponent('Sitio de Ciencia-Ficción - ' + vbReplace(document.title, 'Sitio de Ciencia-Ficcion - ', ''));
		print('&nbsp;<img src="' + PPB + 'imag/_mnu_diu.gif" class="Icono16" alt="del.icio.us" title="A&ntilde;adir el enlace a ' + pronombre + ' ' + Tipo + ' a del.icio.us" style="cursor:pointer;" ' + 
						'onclick="window.open(\'http://del.icio.us/post?v=4&noui&jump=close&url=' + encodeURIComponent(location.href) + 
						'&title=' + Title + '\', \'delicious\' , \'toolbar=0,width=700,height=400\');">' + 

						'&nbsp;<g:plusone size="small"></g:plusone>');
		/* print('&nbsp;<a name="fb_share" type="button" href="http://www.facebook.com/sharer.php">Compartir</a>' + 
				'<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>');
		*/
	}
	
	if (MostrarContador == 0 || gEnLista('noticia, tira', Tipo)) {
		return;
	} else if (MostrarContador == 1) {
		Contadores(Articulo, Tipo, Titulo);
	} else if (gEnLista('op, lm, mc'),  vbLeft(Articulo, 2)) {
		ca = Articulo.split("_");
		if (kuki.L("IdArticulo") != ca[0]) Contadores(ca[0], Tipo, Titulo);
	}

} // ====================

/* Provee el enlace correspondiente para enlazar con tiendas virtuales
 =========================================================== */
function ComprarEn(TiendaVirtual, EnlaceProducto) {	

TiendaVirtual = String(TiendaVirtual);
EnlaceProducto = String(EnlaceProducto);
var ExistenParametros = EnlaceProducto.search(/\?/);
var IdSitio = "";

	switch(TiendaVirtual.toLowerCase())
	{
		case 'cyberdark': 
			return;
			if (ExistenParametros != -1)
			{
				IdSitio = "&siteId=sdcf"; 
			} else {
				IdSitio = "?siteId=sdcf"; 
			}
		break;
	}
	
	print('<table border=\"0\"><tr>');
	print('<td><img src=\"' + gNv + 'imag/_lblcomp.gif\" alt=\"Comprar En\" style="width:100px; height:15px;" /></td>');
	print('<td valign=\"center\" style=\"font-family:courier new, monospace;\">');
	Enlace(TiendaVirtual, EnlaceProducto + IdSitio, 0, '_blank', 'eex');
	print('</td></tr></table>');

} // ====================

/* Dibuja el número y enlace indicados en el parámetro.
 =========================================================== */
function Nota(NumeroNota) {

	/* El código del enlace  hay que recordar que en las notas la referencia 
	name debe ser exactamente 'nota[NumeroNota]'*/
	print('<span class="enlacenota">[' +
			'<a href="javascript:void(null)"' +
			'onclick="Ventana(\''+ NombrePagina() +'#nota' + NumeroNota + '\',\'400\',\'50\')">' +
			NumeroNota +
			'</a>]' +
			'</span>');

} // ====================

/* Dibuja el número y enlace indicados en el parámetro. Usar conjuntamente con NotaN
 =========================================================== */
function NotaR(NumeroNota) {

	print('<a name="ref'+NumeroNota+'"></a><span class="enlacenota">[<a href="#nota'+NumeroNota+'">'+ NumeroNota+'</a>]</span>');

} // ====================

/* Dibuja el número y enlace de la referencia de la nota. Usar conjuntamente con NotaR
 =========================================================== */
function NotaN(NumeroNota) {

	print('[<b><a href="#ref'+NumeroNota+'">'+NumeroNota+'</a></b>]');

} // ====================

/* Creo el enlace para el podcast de turno y de paso facilito el 
	reproductor si es un MP3
 =========================================================== */
function PodCast(Archivo, Titulo, Duracion, Bytes) {

	var Ext, sDir, Title, Icono;
	var PPB = DevolverNivel();	
	Archivo = String(Archivo); 
	Archivo = Archivo.toLowerCase(); 
	Archivo = Archivo.replace(/.mp3/gi, '');
	if (Archivo.search(".m3u") == -1) {
		if (Titulo == 'm3u') {
			Ext = '.m3u';
			Titulo = '';
			Title = 'Locución, reproducción directa';
			Icono = 'pcs';
			sDir = 'm3u/';
		} else {
			Ext = '.mp3';
			Title = 'Locución, descargar el MP3';
			Icono = 'pcc';
			sDir = '';
		}
	} else {
		Title = 'Los archivos del mes en streaming';
		Ext =  '';
		Icono = 'pcs';
		sDir = 'm3u/';
	}

	print ('<a href="' + PPB + 'varios/podcast/' + sDir + Archivo + Ext + '" title="' + Title + '">' +
		'<img src="' + PPB + 'imag/_mnu_' + Icono + '.gif" alt="Podcast" align="absmiddle" style="width:16px; height:16px;"> ' +
		((Titulo) ? Titulo : '') + 
		((Duracion) ? ', ' + Duracion + ' min' : '') + 
		((Bytes) ? ', ' + Bytes + ' bytes' : '') + 
		'</a>');

	if (Ext == '.mp3') {
		print ('<br /><object type="application/x-shockwave-flash" ' + 
					'data="http://www.telefonica.net/c/fjsi/dewplayer.swf?mp3=/varios/podcast/' + sDir + Archivo + Ext + '&volume=60" ' + 
					'width="200" height="20"> ' + 
					'<param name="wmode" value="transparent" /> ' + 
					'<param name="movie" value="/varios/podcast/' + sDir + Archivo + Ext + '&volume=60" /> ' + 
					'</object>');
	}

} // ====================

// ====================
function OtrasVisiones(IdArticulo, Referencia, Sitio, Enlace, Tipo, Titulo) {

	var ovl = Referencia.length -1;	
	var ovn = 0;
	var Cabecera = '\n\n<div class="cb" style="margin: 5px 3px; padding: 1px 10px; background-color: #FFF5EB;">\n' +
					'<hr width="45%" align="left" style="margin-top: 5px;" />\n'+ 	
						'<div class="h5">#Leyenda#</div>\n' +
					'<hr width="35%" align="left" style="margin-top: 5px;" />\n';

	var Pie = '<hr width="65%" align="left" style="margin-top: 10px;" />\n'	+
				'</div>\n';
		
	if (vbLeft(Enlace[0], 4) == 'http' || vbLcase(Sitio[ovn]) == 'sitio') {
	
		document.write(vbReplace(Cabecera, '#Leyenda#', 'Otras visiones'));		

		for (ovn = 0; ovn <= ovl; ovn++) {
			var clss = ' class="otrasvisiones' + (vbInStr(Enlace[ovn], 'http') != -1 ? ' eex' : '') + '"';
			var trgt = (vbInStr(Enlace[ovn], 'http') != -1 ? ' target="blank"' : ''); 
			Enlace[ovn] = ((vbInStr(vbLcase(Enlace[ovn]), 'sitio:') != -1) ? vbReplace(vbLcase(Enlace[ovn]), 'sitio:', '') : Enlace[ovn]);
			if (vbLeft(Referencia[ovn], 6) == 'Más de') break;
			document.write ( (Enlace[ovn] != '' ? '<a href="' + Enlace[ovn] + '"' + clss + trgt + '>' 
												: '\n<hr width="45%" align="left" style="margin-top: 15px;" />\n') +
							(Referencia[ovn] != '' ? '<b>' + Referencia[ovn] + '</b>' : '') + 
							(Sitio[ovn] != '' && Sitio[ovn] != 'Sitio' ? ' en <i>' + Sitio[ovn] + '</i>' : '') + 
						(Enlace[ovn] != '' ? '</a>' : '') +
					'<br />\n' );
		}
		document.write(Pie);
	}

	
	if (vbLeft(Referencia[ovn], 6) == 'Más de') {
		if (Tipo != 'artículo') PortadasOtrasObras(Referencia, Enlace, ovn);
		EnlacesOtrasObras(IdArticulo, Referencia, Enlace, ovn, Cabecera, Pie);
	}

	Contadores(IdArticulo, Tipo, Titulo);

} // ====================

// ====================
function EnlacesOtrasObras (IdArticulo, Referencia, Enlace, ovn, Cabecera, Pie) {

	var ovl = Referencia.length -1;
	
	// Pinto los enlaces a las referencias
	document.write(vbReplace(Cabecera, '#Leyenda#', Referencia[ovn] + ' en SdCF'));		
	for (ovn = ovn + 1; ovn <= ovl; ovn++) {

		if (vbLeft(Referencia[ovn], 6) == 'Más de') { //Por si hubiera más de un autor
		
			document.write(Pie + vbReplace(Cabecera, '#Leyenda#', Referencia[ovn] + ' en SdCF'));
		
		} else {

			document.write((vbInStr(Enlace[ovn], IdArticulo) == -1 ? '<a href="' + Enlace[ovn] + '"' : '<span') + ' class="masde">' + 
												'<b>' + Referencia[ovn] + '</b>' + 
							(vbInStr(Enlace[ovn], IdArticulo) == -1 ? '</a>' : '</span>') + 
							'<br />\n');
		}

	}
	document.write(Pie);

}
// ====================

// ====================
function PortadasOtrasObras (Referencia, Enlace, ovn) {

	// Extraigo las referencias a los artículos de Opinión y Límites
	var mImg = new Array(), mRef = new Array(), mEnl = new Array(); 
	var ovl = Referencia.length -1;
	var iL = -1; var ListaL = 'N/A';
	for (ovx = ovn + 1; ovx <= ovl; ovx++) {
		if (!gEnLista(ListaL, Enlace[ovx]) && (vbInStr(Enlace[ovx], '/opinion/') != 0 || vbInStr(Enlace[ovx], '/limites/' != 0))) {
			mImg[++iL] = vbReplace(Enlace[ovx], 'opinion/', '../opinion/imag/');
			mImg[iL] = vbReplace(mImg[iL], '../limites/', '../limites/imag/');
			mImg[iL] = vbReplace(mImg[iL], '.htm', '.jpg');
			mRef[iL] = Referencia[ovx];
			mEnl[iL] = Enlace[ovx];
			ListaL = ListaL + ', ' + Enlace[ovx];
		}
	}

	// Ahora pinto las portadas a los libros
	document.write ('\n<div style=\"margin:10px; text-align:center;\">\n');
	var ListaL = '9999';
	for (ovx = 0; ovx <= (iL >= 4 ? 4 : iL); ovx++) {
		// Muestro las portadas aleatoriamente
		do {
		   x = Aleatorio(0, iL);
		   y = gEnLista(ListaL, x);
		   if (!y) ListaL = ListaL + ', ' + x;
		} while(y);
		document.write ('<img src="'+mImg[x]+'"  ' +
							'alt="'+mRef[x]+'" ' +
							'title="'+mRef[x]+'"  ' +
							'style="width:90px; height:135px;" class="puntero" ' +
							'onclick="location.href=\''+mEnl[x]+'\';"/>\n');
	}
	document.write ('</div>\n');
	ListaL = '';
}
// ====================


// ====================
function Contadores(IdArticulo, Tipo, Titulo) {
	
	if ((Servidor() == "s" || kuki.L("IdArticulo") == IdArticulo) && Tipo != 'contador' ) return;

	if (vbInStr(Titulo, ", de") != -1) Titulo = vbLeft(Titulo, vbInStr(Titulo, ", de") -1);
	pn = vbReplace(vbLcase(location.pathname), "/sitio/", "");

	print('\n<script src="'+DevolverNivel()+'varios/contadores.php?a=' + IdArticulo + '&l=' + ((!Titulo) ? "" : escape(Titulo)) + '&u=' + pn + '&t=' + ((!Tipo) ? "" : Tipo) + '"></script>\n');

	kuki.E("IdArticulo", IdArticulo);

} // ====================

// Muestra el listado de los históricos de estadísticas
// ====================
function EstadisticasPorAaa(AaaDeLaPagina) {

	print('<div class="lista">');
	for (n=2005; n <= 2010; n++)
	{
		print('<a href="estadist' + n + '.htm" target="_top" class="bmar' + (n == AaaDeLaPagina ? ' b' : '') +'">' +	
				(n == 2005 ? '1997-2005' : n) +
				'</a>&nbsp;&nbsp;');
	}
	print('</div>\n');
	print('<a href="../notas.htm" target="_top"><img src="../imag/_boloazu.gif" alt="*" class="bolo" /><b>Env&iacute;a tus propias respuestas</b></a><p/></p>');
} // ====================

/* Busca Item en la Lista dada la cadena pasada. No distingue entre mayúsculas y 
 minúsculas. La lista debe ser de la forma "e1, e2, e3"
  =========================================================== */
function gEnLista(Lista, Item)
{
	Lista = vbReplace(vbReplace(vbReplace(vbReplace('#' + Lista + '#', ',', '#'), ' #', '#'), '# ', '#'), '##', '#');
	if (vbInStr(vbLcase(Lista), vbLcase('#' + Item + '#')) != -1) {return true;} else {return false;}
}
// ====================

/* Si "Muestra" es de menor longitud que "Cadena", y "Cadena" empieza
por "Muestra", devuelve verdadero. No se tiene en cuenta la caja
  =========================================================== */
function gEmpiezaPor(Cadena, Muestra) {
	Cadena = vbLcase(vbTrim(Cadena));
	Muestra = vbLcase(Muestra);
	if (vbLen(Muestra) > vbLen(Cadena))	{
		return false;
	} else {
		return (vbLeft(Cadena, vbLen(Muestra)) == Muestra ? true : false);
	}
} // ====================

/* Si "Muestra" es de menor longitud que "Cadena", y "Cadena" termina
por "Muestra", devuelve verdadero. No se tiene en cuenta la caja
  =========================================================== */
function gTerminaPor(Cadena, Muestra) {
	Cadena = vbLcase(vbTrim(Cadena));
	Muestra = vbLcase(Muestra);
	if (vbLen(Muestra) > vbLen(Cadena))	{
		return false;
	} else {
		return (vbRight(Cadena, vbLen(Muestra)) == Muestra ? true : false);
	}
} // ====================

// Da visibilidad o no a una capa previamente establecida como style='display:none;'
// ====================
function VerNoVer(Capa, Mostrar) {
	if (!isObject(Capa)) return;
	eval('document.getElementById(\''+Capa+'\').style.display="' + (Mostrar == 1 ? 'inline' : 'none') +'";');
} // ====================

// Si una capa es visible la oculta y viceversa
// ====================
function InvertirVisibilidad(Capa) {
	if (!isObject(Capa)) return;
	var estado = eval('document.getElementById(\''+Capa+'\').style.display');
	eval('document.getElementById(\''+Capa+'\').style.display="' + (estado == 'none' ? 'inline' : 'none') +'";');
} // ====================

/* Aligera en cierto modo la carga de código de las páginas.
/* ============================================ */
function dgi(Capa, Texto) {
	if (tagID(Capa) != false) {
		document.getElementById(Capa).innerHTML = Texto;
	}
}
/* ============================================ */

// Muestra un video embebido, de momento el origen solo desde YouTube
// ====================
function Video(IdVideo, Ancho, Alto) {

	Ancho = (!Ancho ? '450' : Ancho); // 450 Dimensiones por defecto para la sección Cortos
	Alto = (!Alto ? Ancho * 0.831 : Alto);	// 450 / 0,831 = 374 Dimensiones por defecto para la sección Cortos
	Alto = ((Alto == '4:3') ? Ancho * (3/4) : Alto);
	Alto = ((Alto == '14:9') ? Ancho * (9/14) : Alto);
	Alto = ((Alto == '16:9') ? Ancho * (9/16) : Alto);

	document.write('<center><object>' +
				'<embed src="http://es.youtube.com/v/' + IdVideo + '&showinfo=0&showsearch=0" ' +
					' type="application/x-shockwave-flash" ' + 
					' width="' + Ancho + '" height="' + Alto + '"></embed>' +
			'</object></center>');
} // ====================

// antiHOYGAN
// Script URI: http://www.nopuedocreer.com/quelohayaninventado/?page_id=203
// Description: "Filtro antiHOYGAN"
// Author: Dani "Troy" Gonzalez
// Version: 1.0
// Author URI: http://www.hevistocosas.com 
// ====================
function filterHOYGAN (texto) {
	swHOYGAN = false;
	msgError = "";

	numLetras = texto.length;
	numMayusculas = 0;
	
	for (i=0; i < numLetras; i++) {
		if (texto.charAt(i) >='A' && texto.charAt(i) <= 'Z') numMayusculas++;
	}

	if (numLetras > 4 && numMayusculas > (numLetras / 4)) {
	
		swHOYGAN = true;
		msgError = "Exceso de mayúsculas";
	
	} else {

		textoLower = texto.toLowerCase();
		textoLower = " " + textoLower;

		HOYGANseed = new Array("hoygan", "hoigan", "wenas", "wapo", "wapa", "weno", "fabor", "kiero", "plis", "pliss", "plisss", "grasias", "antebraso", " ke ", " k ", " q ", " d ", "pq", "xq", "xk", "aaaa", "eeee", "iiii", "oooo" ,"uuuu", "jajaja", "hahaha", "jejeje" ,"!!!", "???", "dddd", "fff", "ggg", "jjj", "lll", "mmmm", "nnnn", "rrrr", "xxxx", "zzzz", "dddd", "ssss");
		for (i=0; i < HOYGANseed.length; i++) {
			if (textoLower.indexOf(HOYGANseed[i]) != -1) {
				swHOYGAN = true;
				msgError = HOYGANseed[i];
				break;
			}	
		}
	}

	if (swHOYGAN) {	
		alert ("ALERT: AntiHOYGAN Filter FAILED!\n\n » Offending Command: \"" + msgError + "\"\n\nRevise su mensaje y vuelva a intentarlo, por favor.\n\nSi el problema persiste, puede solucionarlo accediendo a:\nwww.RAE.es\nfrikipedia.es/friki/Hoygan");
		return false;
    }
    return true;
}
// ====================

function fams(Parte){
	var f = 'F'+'e'+'r'+'n'+'a'+'n'+'d'+'o';
	var a = '&'+'A'+'a'+'c'+'u'+'t'+'e'+';'+'n'+'g'+'e'+'l';
	var m = 'M'+'o'+'r'+'e'+'n'+'o';
	var s = 'S'+'e'+'r'+'r'+'a'+'n'+'o';
	if (Parte=='m') {document.write(f+' '+a+' '+m)} else {document.write(f+' '+a+' '+m+' '+s)}
}

function zh(Parte){
	var j = 'J'+'o'+'s'+'&'+'e'+'a'+'c'+'u'+'t'+'e'+';';
	var l = 'L'+'u'+'i'+'s';
	var z = 'Z'+'&'+'a'+'a'+'c'+'u'+'t'+'e'+';'+'r'+'a'+'t'+'e';
	var h = 'H'+'e'+'r'+'r'+'e'+'r'+'a';
	if (Parte=='z') {document.write(z)} else {document.write(j+' '+l+' '+z+' '+h)}
}

function sx(Parte){
	var s = 'S'+'a'+'n'+'t'+'i'+'a'+'g'+'o';
	var e = 'E'+'x'+'i'+'m'+'e'+'n'+'o';
	if (Parte=='e') {document.write(e)} else {document.write(s+' '+e)}
}

function sg(Parte){
	var s = 'S'+'e'+'r'+'g'+'i'+'o';
	var e = 'G'+'a'+'u'+'t'+' '+'v'+'e'+'l'+' '+'H'+'a'+'r'+'t'+'m'+'a'+'n';
	if (Parte=='e') {document.write(e)} else {document.write(s+' '+e)}
}

/* Esta serie de funciones simulan las equivalentes en VBS.
	Puede parecer una pérdida de tiempo de proceso y una rebuznancia,
	pero para cuatro veces que toco el código, prefiero eso a andar liándome 
	con las propiedades del objeto string. */
// ====================
function vbLeft(Cadena, Longitud) {
	var cr = new String(Cadena); 
	if (cr.length < Longitud) { 
		return cr;
	} else {
		return cr.substring(0, Longitud);
	}
}
function vbRight(Cadena, Longitud) {
	var cr = new String(Cadena); 
	if (cr.length < Longitud){ 
		return cr;
	} else {
		return cr.substring(cr.length - Longitud, cr.length);
	}
}
function vbMid(Cadena, Inicio, Longitud) {
	var cr = new String(Cadena);
	return cr.substring(Inicio - 1, Inicio + Longitud - 1);
}
function vbReplace(Cadena, Sustituir, Por) { // /g sustituye todas las apariciones  con "i" da igual la caja. 
	var cr = new String(Cadena);
	var su = Sustituir.replace(/\//g, "\\/");
	var su = su.replace(/\./g, "\\.");
	var pr = Por.replace(/\//g, "\\/");
	var pr = pr.replace(/\./g, "\\.");
	return eval('cr.replace(/' + su + '/g, \'' + pr + '\');');
}
// ListaSustituir y ListaPor deben ser dos listas con los mismos elementos separados por | 
function vbReplaceX (Cadena, ListaSustituir, ListaPor) { 

	var ListaSustituir = new String(ListaSustituir);
	var mSustituir = ListaSustituir.split('|')

	var ListaPor = new String(ListaPor);
	var mPor = ListaPor.split('|')
	
	for (bc = 0; bc < mSustituir.length; bc++)	{
		Cadena = vbReplace(Cadena, mSustituir[bc], mPor[bc]);
	}
	return Cadena;
}
function vbLcase(Cadena) {
	var cr = new String(Cadena);
	return cr.toLowerCase();
}
function vbLen(Cadena) {
	var cr = new String(Cadena);
	return cr.length;
}
function vbUcase(Cadena) {
	var cr = new String(Cadena);
	return cr.toUpperCase();
}
function vbInStr(Cadena, Buscar) {
	var cr = new String(Cadena);
	var x = cr.search(Buscar);
	return x + (x != -1 ? 1 : 0);
}
function vbTrim(txt) {  // Alucina vecina, esta función ni existe en javascript
	txt = vbReplace(txt, '\\n', '');
	txt = vbReplace(txt, '\\r', '');
	txt = vbReplace(txt, '\\t', '');
	t = new String(txt);
	return t.replace(/^\s+|\s+$/g,''); 
}
function vbSplit(Cadena, Separador) {
	var cr = new String(Cadena);
	var mtzrSplit = new Array(); 
	mtzrSplit = cr.split(Separador);
	var n;
	for (sn=0; sn < mtzrSplit.length; sn++)
	{
		mtzrSplit[sn] = vbTrim(mtzrSplit[sn]);
	}
	return mtzrSplit;
}

// ====================

// http://www.google.com/webmasters/+1/button/index.html
if (Servidor() == "r") {
	document.write ('<script type="text/javascript" src="http://apis.google.com/js/plusone.js">{lang: \'es\'}</script>');
}

// ==================== 
function gCambiarPropiedadClaseCSS(Clase, Propiedad, valor) {

	Clase = Clase.toLowerCase();
	if (document.all) {
		lClasesCSS = document.styleSheets[0].rules;
	} else {
		lClasesCSS = document.styleSheets[0].cssRules;
	}
	for (i=0; ClaseCSS=lClasesCSS[i]; i++) {
		if (ClaseCSS.selectorText.toLowerCase() == Clase) {
			ClaseCSS.style[Propiedad] = valor;
		}
	}

}
// ==================== 

// con la ayuda de jQuery, cambia la altura de los elementos 
// definidos en ListaElementos
// ==================== 
function gAjustaAltura(ListaElementos) {

	var mLista = vbSplit(ListaElementos, ',')
	var ventana_alto = $(window).height() - (IE ? 140 : 120); // para variar, IE tocando las pelotas
	for (n=0; n < mLista.length; n++)	{
		if (isObject(mLista[n])) $('#'+mLista[n]).css('height', ventana_alto);
	}
}
// ==================== 

// ==================== 
function gSaltarA(Salto) {
	var ar = $('#name'+Salto).position().top;
	scrollTo(0,ar-15);
}
// ==================== 

//</script>


