/***************************************************************************************************************************/
/**************************************************** LIBROS	**************************************************************/
/***************************************************************************************************************************/
function lib_buscainicial(l) {
	document.frm.InicialTitulo.value = l;
	document.frm.submit();
}

function lib_pagina(p) {
	document.frm.Pagina.value = p;
	document.frm.submit();
}

/***************************************************************************************************************************/
/**************************************************** CESTA	****************************************************************/
/***************************************************************************************************************************/
function ces_insertar(idl, cant) {
	llamadaAjaxUnescape("POST", "/ajax_cesta.asp", "acc=INS&idlibro=" + idl + "&cantidad=" + cant, "cestaDiv");
}

function ces_eliminar(idl) {
	llamadaAjaxUnescape("POST", "/ajax_cesta.asp", "acc=DEL&idlibro=" + idl, "", "recargar();");
}

function ces_calculartotal() {
	llamadaAjaxUnescape("POST", "/ajax_cestatotal.asp", "", "totalDiv");
}

function ces_actualizartotal(idl, cant) {
	llamadaAjaxUnescape("POST", "/ajax_cesta.asp", "acc=CESTA&idlibro=" + idl + "&cantidad=" + cant, "total" + idl + "Div", "ces_calculartotal();");
}

function ces_actualizar() {
	document.frm.submit();
}

function ces_tramitar() {
	document.frm.action="/cesta/tramitar";
	document.frm.submit();
}

/***************************************************************************************************************************/
/**************************************************** COMUN	****************************************************************/
/***************************************************************************************************************************/
function llamadaAjax(metodo, pagina, valores, capa, func) {
	var xmlHttp;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	
	if (metodo=="POST") {
		xmlHttp.onreadystatechange=function()
		{
			if(xmlHttp.readyState==4)
			{
				var tmp;
				if (xmlHttp.responseText.length>0) {
					if(xmlHttp.status==200) {
						if (capa.length>0)
							document.getElementById(capa).innerHTML=xmlHttp.responseText; 

						if (func)
							if (func.length>0)
								setTimeout(func, 0);

					} else if(xmlHttp.status==404) {
						//document.getElementById(capa).innerHTML = "La direccion existe";
					} else {
						if (capa.length>0)
							document.getElementById(capa).innerHTML = "Error: "+xmlHttp.status + "(" + pagina + ";" + valores + ")";
						else
							alert("Error: "+xmlHttp.status + "(" + pagina + ";" + valores);
					}
				}
			}
		}
		//xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		//
		xmlHttp.open("POST", pagina, true);
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Accept-Charset", "UTF-8");
		xmlHttp.send(valores);
	}
}
function llamadaAjaxUnescape(metodo, pagina, valores, capa, func) {
	var xmlHttp;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	
	if (metodo=="POST") {
		xmlHttp.onreadystatechange=function()
		{
			if(xmlHttp.readyState==4)
			{
				var tmp;
				if (xmlHttp.responseText.length>0) {
					if(xmlHttp.status==200) {
						if (capa.length>0) {
							var cadena=unescape(xmlHttp.responseText);
							var cadenafinal=cadena.replace(/\+/gi," ");
							document.getElementById(capa).innerHTML=cadenafinal; 
						}
						if (func)
							if (func.length>0)
								setTimeout(func, 0);

					} else if(xmlHttp.status==404) {
						//document.getElementById(capa).innerHTML = "La direccion existe";
					} else {
						if (capa.length>0)
							document.getElementById(capa).innerHTML = "Error: "+xmlHttp.status + "(" + pagina + ";" + valores + ")";
						else
							alert("Error: "+xmlHttp.status + "(" + pagina + ";" + valores);
					}
				}
			}
		}
		//xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		//
		xmlHttp.open("POST", pagina, true);
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Accept-Charset", "UTF-8");
		xmlHttp.send(valores);
	}
}

function min(a,b) {
	if (a<b) return (a); else return(b);
}

function replace(texto,s1,s2){
	return texto.split(s1).join(s2);
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
function toDate(str) {
	var tmpT, tmpD, tmp;
	var fecha;
	
	if (str.length>0) {
		tmp = str.split(" ");
		tmpD = tmp[0].split("/");
		if (tmp.length>1) tmpT = tmp[1].split(":");
		
		fecha = new Date();
		fecha.setFullYear(tmpD[2], tmpD[1]-1, tmpD[0]);
		if (tmp.length>1) fecha.setHours(tmpT[0], tmpT[1], 0, 0);
	}
	return (fecha);
}

function DiaMesAnnoCorrectos(dia, mes, anno) {
	/* Para comprobar la validez de una fecha introducida (debidamente parseada), 
	tan solo hay que construir con un objeto Date introduciendo dichos valores, y 
	comprobando por último si el mes de la fecha resultante coincide con el de la
	fecha introducida. Por ejemplo: introducir 31 de Abril equivale a 1 de Mayo */		
	var d = new Date();
	d.setDate(dia);
	d.setMonth(mes-1);
	d.setYear(anno);
	if (d.getMonth()!= mes-1 ) {
		return (false);
	} else {
		return (true);
	}
}

 function wordCount(textoArea) {
  // Función que nos va a contar el número de caracteres 
  // y de palabras del area de texto de un formulario

  // El numero de caracteres es su longitud
  numeroCaracteres = textoArea.length;

  // Eliminamos los caracteres en blanco del inicio y del final.
  // Como no tenemos funciones del tipo trim, rtrim y ltrim usamos
  // expresiones regulares
  // El ^ indica principio de cadena
  inicioBlanco = /^ / 
  // El $ indica final de cadena
  finBlanco = / $/
  // El global (g) es para obtener todas las posibles combinaciones
  variosBlancos = /[ ]+/g 

  textoArea = textoArea.replace(inicioBlanco,"");
  textoArea = textoArea.replace(finBlanco,"");
  textoArea = textoArea.replace(variosBlancos," ");

  // Creamos un array con las diferentes palabras. Teniendo en 
  // cuenta que la separación entre palabras es el espacio en blanco.
  textoAreaDividido = textoArea.split(" ");
  numeroPalabras = textoAreaDividido.length;

  // Mostramos los datos.
  // Tendremos en cuenta si hay que escribir en plural o en singular.
  tC = (numeroCaracteres==1)?" carácter":" caracteres";
  tP = (numeroPalabras==1)?" palabra":" palabras";
  
  return (numeroPalabras);
     
  //alert (numeroCaracteres + tC +"\n" + numeroPalabras + tP);
 }

 function quitarExcesoPalabras(textoArea, maxPalabras) {
  // Creamos un array con las diferentes palabras. Teniendo en 
  // cuenta que la separación entre palabras es el espacio en blanco.
	var textoAreaDividido = textoArea.split(" ");
	if (textoAreaDividido.length>1) {
		//alert(textoAreaDividido.length);

		textoAreaDividido.length = min(maxPalabras, textoAreaDividido.length);
		for (var i=0; i < textoAreaDividido.length; i++) {
	  		textoAreaDividido[i] = Left (textoAreaDividido[i], min(textoAreaDividido[i].length, 20));
		}
		return (textoAreaDividido.join(" "));
	} else {
		return (textoAreaDividido);
	}
}

function ControlCaracteres(campo, maxcar, capa) {
	if (campo.value.length > maxcar)  campo.value = campo.value.substring(0, maxcar);

	document.getElementById(capa).innerHTML = "Quedan <b>" + (maxcar-campo.value.length) + "</b> caractéres ";
}

/************** CONTROL DE FORMULARIOS ********************************************/

var ie = (document.all)? true:false;
var ns = (document.all)? false:true;

// Funcion que comprueba los datos en el submit
function es_correcto(campo, tipo, formulario) {
	if(ie){
		valor = eval(formulario.name + '.' + campo + '.value');
	}
	if(ns){
		valor = eval(formulario).eval(campo).value;
	}
	maxlength=50;
	if (tipo.length > 3) {
		maxlength = parseInt(tipo.substr(3,tipo.length-3));
		if (isNaN(maxlength)) maxlength=50;
		tipo = tipo.substr(0,3);
	}

	longitud = valor.length;
	if (valor.length!=0) {
		switch(tipo)
		{
			case 'tel':
				var objRegExp  = /^[0-9]{9}$/;
				return objRegExp.test(valor);
			case 'num':
				var objRegExp  = /^[0-9]{1,}$/;
				return objRegExp.test(valor);
			case 'fec':
				var objRegExp1 = /^\d{1}(\-|\/|\.)\d{2}\1\d{4}$/
				var objRegExp2 = /^\d{2}(\-|\/|\.)\d{2}\1\d{4}$/
				if(!objRegExp1.test(valor) && !objRegExp2.test(valor)) {
					return false;
				}else{
					if (objRegExp1.test(valor)) {
						valor = "0" + valor;
						if(ie){
							eval(formulario.name + '.' + campo + '.value=valor');
						}
						if(ns){
							eval(formulario).eval(campo).value=valor;
						}
					}
					var strSeparator = valor.substring(2,3)
					var arrayDate = valor.split(strSeparator);
					var arrayLookup = { '01':31, '03':31, '04':30, '05':31, '06':30, '07':31, '08':31, '09':30, '10':31, '11':30, '12':31 }
					var intDay = parseInt(arrayDate[0]*1); 
					if(arrayLookup[arrayDate[1]] != null) {
						if(intDay <= arrayLookup[arrayDate[1]] && intDay != 0)
						return true;
					}
					var intYear = parseInt(arrayDate[2]);
					var intMonth = parseInt(arrayDate[1]);
					if (intMonth >= 1 && intMonth <= 12) {
						if( ((intYear % 4 == 0 && intDay <= 29) || (intYear % 4 != 0 && intDay <=28)) && intDay !=0)
							return true;
					}
				}
				return false;
			case 'hor':
				var objRegExp = /^(2[0-3]:[0-5][0-9])|(1[0-9]:[0-5][0-9])|(0[0-9]:[0-5][0-9])$/;
				return objRegExp.test(valor);			
			case 'cod':
				var objRegExp  = /^[0-9]{5}$/;
				return objRegExp.test(valor);			
			case 'ema':
				//var objRegExp  = /(^[a-zA-Z]([a-zA-Z0-9_\.]*)@([a-zA-Z0-9_\.]*)([.][a-zA-Z]{3})$)|(^[a-zA-Z]([a-zA-Z0-9_\.]*)@([a-zA-Z0-9_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)|(^[a-zA-Z]([a-zA-Z0-9_\.]*)@([a-z_\.]*)(\.[a-z]{2})(\.[a-z]{2})*$)/i;
				//return objRegExp.test(valor);
				return mailValido(valor);
			case 'eda':
				var objRegExp  = /^[0-9]{1,2}$/;
				return objRegExp.test(valor);
			case 'dni':
				pletra = valor.substring(0,1);
				var objRegExp1 = /^[a-zA-Z]{1}$/;
				var letranifempresa = objRegExp1.test(pletra);
				if(letranifempresa)
				{
					//Empresa
					var objRegExp  = /^[a-zA-Z]{1}[0-9]{8}$/;
				}
				else
				{
					//Persona
					var objRegExp  = /^[0-9]{8}[a-zA-Z]{1}$/;
				}
				return objRegExp.test(valor);
			case 'txt':					
				if (valor.length > maxlength) return false;
				else {
					//var objRegExp  = /^[a-zA-Z0-9]*$/;
					//return objRegExp.test(valor);
					return true;
				}
			case 'neg':
				var objRegExp  = /^-[0-9]{1,}$|^[0-9]{1,}$/;
				return objRegExp.test(valor);				
			case 'dec':
				var objRegExp = /^[0-9]{1,}\.[0-9]{1,}$|^[0-9]{1,}$/;
				return objRegExp.test(valor);
			case 'ned':
				var objRegExp = /^-[0-9]{1,}\.[0-9]{1,}$|^[0-9]{1,}\.[0-9]{1,}$|^[0-9]{1,}$|^-[0-9]{1,}$/;
				return objRegExp.test(valor);
			default:
				return true;
		}
		
	}else{
		return true;
	}
}

	function fechaValida(str) {
		var ok = true;
		if (str.length>0) {
			var tmp = str.split("/");
			var d = new Date();
			d.setFullYear(parseInt(tmp[2]), parseInt(tmp[1]*1)-1, parseInt(tmp[0]*1));
			if (!(d.getFullYear() == (tmp[2]*1) && (d.getMonth()+1) == (tmp[1]*1) && d.getDate() == (tmp[0]*1))) ok = false;
			//alert(d.getFullYear() + "/" + (d.getMonth()+1) + "/" + d.getDate() + " - " + (tmp[2]*1) + "/" + (tmp[1]*1) + "/" + (tmp[0]*1));
		} else {
			ok = false;
		}
		
		return ok;
	}
 	
 	function mailValido(str) {
 		var tmp = str.split(" ");
 		if (tmp.length==1) {
	 		var w = new Array(3)
	 		w[0] = "";
	 		w[1] = "";
	 		w[2] = "";
			encArroba=false;
			encPunto=false;
			for (i=0; i < str.length && !encArroba; i++) {
				if (str.charAt(i) == '@')
					encArroba=true;
				else
					w[0]+=str.charAt(i)
			}
			if (encArroba) {
				for (; i < str.length && !encPunto; i++) {
					if (str.charAt(i) == '.')
						encPunto=true;
					else
						w[1]+=str.charAt(i)
				}
				for (j=0; j < w[1].length; j++) {
					if (w[1].charAt(j) == '@')
						w[1]="";
				}
			}
			if (encPunto) {
				for (; i < str.length; i++) {
					w[2]+=str.charAt(i)
				}
				for (j=0; j < w[2].length; j++) {
					if (w[2].charAt(j) == '@')
						w[2]="";
				}
			}

			return (encArroba && encPunto && w[0].length>0 && w[1].length>0 && w[2].length>0);
		} else {
			return false;
		}
 	}
 	
	function CIFValido(v) {
		var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
		var letras =new Array('J','A','B','C','D','E','F','G','H','I','J');
		var temp = 0; 
		var valor=v.toUpperCase();
		var Tipo, Provincia, Digito;
	
		if (!/^[A-Za-z0-9]{8,9}$/.test(valor))	// Son 9 dígitos? 
			//Longitud incorrecta, debes introducir 8 o 9 dígitos
			return false;
		else if (!/^[ABCDEFGHJKLMNPQRSUVW]/.test(valor)) // Es una letra de las admitidas ?
			//El primer dígito es incorrecto, debe ser una letra de las siguientes: A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U,V,W");
			return false;
		else {
			for(i=2; i<=6; i+=2) {
				temp = temp + v1[ parseInt(valor.substr(i-1,1)) ];
				temp = temp + parseInt(valor.substr(i,1));
			}
			
			temp=temp + v1[ parseInt(valor.substr(7,1)) ];
			temp=(10 - ( temp % 10));
	
			switch (valor.substr(0,1)) {
				case 'C':
				case 'K':
				case 'L':
				case 'M':
				case 'N':
				case 'P':
				case 'Q':
				case 'R':
				case 'S':
				case 'W': Digito=letras[temp];
					break;
				case 'A':
				case 'B':
				case 'D':
				case 'E':
				case 'F':
				case 'G':
				case 'H':
				case 'J':
				case 'U':
				case 'V': Digito=temp%10;
					break;
			}

			if (Digito!=valor.substr(valor.length-1,1))
				return false;
			else
				return true;
		}
	}
	
	function CIFValido2(str){
		par = 0;
		non = 0;
		letras = "ABCDEFGHKLMNPQS";
		let = str.charAt(0);
		if (str.length!=9) {
			//alert('El Cif debe tener 9 dígitos');
			return false;
		}
		if (letras.indexOf(let.toUpperCase())==-1) {
			//alert("El comienzo del Cif no es válido");
			return false;
		}

		for (zz=2;zz<8;zz+=2) {
			par = par+parseInt(str.charAt(zz));
		}

		for (zz=1;zz<9;zz+=2) {
			nn = 2*parseInt(str.charAt(zz));
			if (nn > 9) nn = 1+(nn-10);
			non = non+nn;
		}

		parcial = par + non;
		control = (10 - ( parcial % 10));
		if (control==10) control=0;
		if (control!=str.charAt(8)) {
			//alert("El Cif no es válido");
			return false;
		}

		//alert("El Cif es válido");
		return true;
	}

	function NIFValido(str){
		dni=str.substring(0,str.length-1);
		let=str.charAt(str.length-1);
		if (!isNaN(let)) {
			//alert('Falta la letra');
			return false;
		}else{
			cadena = "TRWAGMYFPDXBNJZSQVHLCKET";
			posicion = dni % 23;
			letra = cadena.substring(posicion,posicion+1);
			if (letra!=let.toUpperCase()){
				//alert("Nif no válido");
				return false;
			}
		}

		//alert("Nif válido")
		return true;
	}

	function NIEValido(str) {	
		if (str=="")
			return false;	

		var temp=str.toUpperCase();
		var cadenadni="TRWAGMYFPDXBNJZSQVHLCKET";
		var v1 = new Array(0,2,4,6,8,1,3,5,7,9);
		var posicion=0;
		var letra=" ";

		//Residente en España	
		if (str.length==9) {
			if (temp.substr(0,1)=="X" || temp.substr(0,1)=="Y" || temp.substr(0,1)=="Z") {
				var temp1=temp.substr(1,7);

				posicion = temp1 % 23; /*Resto de la division entre 23 es la posicion en la cadena*/
				letra = cadenadni.substring(posicion,posicion+1);
				if (!/^[A-Za-z0-9]{9}$/.test(temp)) { 
					return false;	
				} else { 
					//Tiene los 9 dígitos, comprobamos si la letra esta bien
					var temp1=temp.substr(1,7);
					posicion = temp1 % 23; /*Resto de la division entre 23 es la posicion en la cadena*/
					letra = cadenadni.charAt(posicion);
					var letranie=temp.charAt(8);
					if (letra != letranie) {			
						return false;			
					}				
				}
			} else {
				return false;			
			}		
		} else if (str.length==14){//14 caracteres, los 2 primeros letras
			var temp1=temp.substr(0,2);
			if (isAlphabetic(temp1)!=true) {
				return false;
			}
		} else {
			return false;
		}

		return true;
	}
	
	function esNumerico(s) {
		var objRegExp  = /^[0-9]{1,}$/;
		return objRegExp.test(s);
	}
	
	function isAlphabetic(cadena) {
		if (cadena.match(/^[a-zA-Z]+$/)) {
			return true;
		} else {
			return false;
		} 
	}

 		
// Funcion que comprueba si un campo esta vacio
function esta_vacio(campo,formulario) {
	if(ie){
		if(eval(formulario.name + '.' + campo + '.value.length')==0) return true;
	}
	if(ns){
		var tipo = eval(formulario).eval(campo).type;
		if(tipo=='text' || tipo=='textarea' || tipo=='password') { if(eval(formulario).eval(campo).value.length==0) return true; }
		if(tipo=='checkbox') { if(eval(formulario).eval(campo).checked==false) return true; }
	}
	return false;
}

////////////////////////////
    function URLDecode(str) 
    { 
        return unescape(str); 
    } 
 
    function URLEncode(str) 
    { 
        str = escape(str); 
 
        // JScript doesn't think '/' needs to be escaped... 
        // I'm not sure it does either, but take it out to be 
        // consistent with VBScript's built-in URLEncode() 
 
        while (str.indexOf("/")!=-1) 
        { 
            str = str.replace("/","%2F"); 
        } 
        return str; 
    } 
    
/////// QUITAR ACENTOS ////////////
		String.prototype.accnt = function(){
			var cnt = 0;
			var acnt = this;
			acnt = acnt.split('');
			acntlen = acnt.length;
			var sec = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
			var rep = ['A','A','A','A','A','A','a','a','a','a','a','a','O','O','O','O','O','O','O','o','o','o','o','o','o','E','E','E','E','e','e','e','e','e','C','c','D','I','I','I','I','i','i','i','i','U','U','U','U','u','u','u','u','N','n','S','s','Y','y','y','Z','z'];
			for (var y = 0; y < acntlen; y++){
			if (sec.indexOf(acnt[y]) != -1)  cnt++;}
			return cnt;}
		String.prototype.renlacc = function(){
			var torem = this;
			torem = torem.split('');
			toremout = new Array();
			toremlen = torem.length;
			var sec = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
			var rep = ['A','A','A','A','A','A','a','a','a','a','a','a','O','O','O','O','O','O','O','o','o','o','o','o','o','E','E','E','E','e','e','e','e','e','C','c','D','I','I','I','I','i','i','i','i','U','U','U','U','u','u','u','u','N','n','S','s','Y','y','y','Z','z'];
			for (var y = 0; y < toremlen; y++){
			if (sec.indexOf(torem[y]) != -1) {toremout[y] = rep[sec.indexOf(torem[y])];} else toremout[y] = torem[y];}
			toascout = toremout.join('');
			return toascout;}
		
		function QuitarAcentos(str){
			var countarr = new Array();
			var c = '';
			var text=str;
			var textout = new Array();
			text = text.replace(/\r/g,'');
			text = text.split('\n');
			var linecnt = text.length;
			for (var x = 0; x < linecnt; x++){
			countarr[x] = Math.abs(text[x].accnt());
			textout[x] = text[x].renlacc();}
			textout = textout.join('\n');
			return textout
		} 		
/////// FIN: QUITAR ACENTOS ////////////		
		function IrAFichaLibro(s) {
			document.location.href = "/titulos/" + QuitarAcentos(s);
		}
		
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function utf8toiso(str) {
	var iso = str;
	iso = replace(iso, "&atilde;", "ã");
	iso = replace(iso, "&otilde;", "õ");
	iso = replace(iso, "&yacute;", "ý");
	iso = replace(iso, "&Atilde;", "Ã");
	iso = replace(iso, "&Otilde;", "Õ");
	iso = replace(iso, "&Yacute;", "Ý");
	iso = replace(iso, "&ntilde;", "ñ");
	iso = replace(iso, "&Ntilde;", "Ñ");
	iso = replace(iso, "&ccedil;", "ç");
	iso = replace(iso, "&Ccedil;", "Ç");
	iso = replace(iso, "&aacute;", "á");
	iso = replace(iso, "&eacute;", "é");
	iso = replace(iso, "&iacute;", "í");
	iso = replace(iso, "&oacute;", "ó");
	iso = replace(iso, "&uacute;", "ú");
	iso = replace(iso, "&Aacute;", "Á");
	iso = replace(iso, "&Eacute;", "É");
	iso = replace(iso, "&Iacute;", "Í");
	iso = replace(iso, "&Oacute;", "Ó");
	iso = replace(iso, "&Uacute;", "Ú");
	iso = replace(iso, "&agrave;", "à");
	iso = replace(iso, "&egrave;", "è");
	iso = replace(iso, "&igrave;", "ì");
	iso = replace(iso, "&ograve;", "ò");
	iso = replace(iso, "&ugrave;", "ù");
	iso = replace(iso, "&Agrave;", "À");
	iso = replace(iso, "&Egrave;", "È");
	iso = replace(iso, "&Igrave;", "Ì");
	iso = replace(iso, "&Ograve;", "Ò");
	iso = replace(iso, "&Ugrave;", "Ù");
	iso = replace(iso, "&acirc;", "â");
	iso = replace(iso, "&ecirc;", "ê");
	iso = replace(iso, "&icirc;", "î");
	iso = replace(iso, "&ocirc;", "ô");
	iso = replace(iso, "&ucirc;", "û");
	iso = replace(iso, "&Acirc;", "Â");
	iso = replace(iso, "&Ecirc;", "Ê");
	iso = replace(iso, "&Icirc;", "Î");
	iso = replace(iso, "&Ocirc;", "Ô");
	iso = replace(iso, "&Ucirc;", "Û");
	iso = replace(iso, "&auml;", "ä");
	iso = replace(iso, "&euml;", "ë");
	iso = replace(iso, "&iuml;", "ï");
	iso = replace(iso, "&ouml;", "ö");
	iso = replace(iso, "&uuml;", "ü");
	iso = replace(iso, "&Auml;", "Ä");
	iso = replace(iso, "&Euml;", "Ë");
	iso = replace(iso, "&Iuml;", "Ï");
	iso = replace(iso, "&Ouml;", "Ö");
	iso = replace(iso, "&Uuml;", "Ü");
	iso = replace(iso, "&iquest;", "¿");
	iso = replace(iso, "&iexcl;", "¡");
	iso = replace(iso, "&acute;", "´");
	iso = replace(iso, "&uml;", "¨");
	iso = replace(iso, "&quot;", "\"");
	iso = replace(iso, "&euro;", "€");
	return iso;
}

function quitarArticulosPreposicionesOld(t) {
	var c = 0;
	t = replace(t, "  ", " ");
	var tmp = t.split(" ")
	for (var i=0; i<tmp.length; i++) {
		if (esArticuloPreposicion(tmp[i])) { tmp[i] = ""; c++; }
	}
	if (c < tmp.length) t = trim(replace(tmp.join(" "), "  ", " "));
	return replace(replace(t, " ", "-"), "--", "-");
}

function quitarArticulosPreposiciones(t) {
	var c = 0;
	t = replace(t, "  ", " ");
	var tmp = t.split(" ")
	for (var i=0; i<tmp.length; i++) {
		if (tmp[i].length<=2) {
			tmp[i] = ""; c++; 
		} else if (esArticuloPreposicion(tmp[i])) { 
			tmp[i] = ""; c++;
		}
	}
	if (c < tmp.length) t = trim(replace(tmp.join(" "), "  ", " "));
	return replace(replace(t, " ", "-"), "--", "-");
}

function esArticuloPreposicion(s) {
	var ap = new Array ("a", "ante", "bajo", "cabe", "con", "contra", "de", "desde", "durante", "en", "entre", "hacia", "hasta", "mediante", "para", "por", "según", "sin", "so", "sobre", "tras", "la", "el", "los", "las", "un", "una", "unos", "unas", "del");
	//s = s.lcase();
	for (i=0; i<ap.length; i++) {
		if (ap[i] == s) return true;
	}
	return false;
}

function quitarOtrasPalabras(t) {
	var c = 0;
	t = replace(t, "  ", " ");
	var tmp = t.split("-");
	for (var i=0; i<tmp.length; i++) {
		if (esOtrasPalabras(tmp[i])) { 
			tmp[i] = ""; c++;
		}
	}
	if (c < tmp.length) t = trim(replace(tmp.join(" "), "  ", " "));
	return replace(replace(t, " ", "-"), "--", "-");
}

function esOtrasPalabras(s) {
	var ap = new Array ("que");
	//s = s.lcase();
	for (i=0; i<ap.length; i++) {
		if (ap[i] == s) return true;
	}
	return false;
}


function hacerEscapeEspecial(s) {
	return escape(replace(s, "+", "&#43;"));
}
function jq_campos2envioajax(f) {
	//Para los campos de la ficha excepto los de las relaciones
	var d = new Array();
	var i = 0;

	if (f.length>0) {
		$("#" + f + " INPUT:hidden").each( function () {
			d[i] = $(this).attr("id") + "=" + hacerEscapeEspecial($(this).val());
			i++;
		});
		$("#" + f + " SELECT").each( function () {
			d[i] = $(this).attr("id") + "=" + hacerEscapeEspecial($(this).val());
			i++;
		});
		$("#" + f + " INPUT:text").each( function () {
			d[i] = $(this).attr("id") + "=" + hacerEscapeEspecial($(this).val());
			i++;
		});
		$("#" + f + " INPUT:checkbox").each( function () {
			d[i] = $(this).attr("id") + "=" + (($(this).attr("checked")) ? "ok" : "");
			i++;
		});
		$("#" + f + " INPUT:radio").each( function () {
			if ($(this).attr("checked")) {
				d[i] = $(this).attr("id") + "=" + hacerEscapeEspecial($(this).val());
				i++;
			}
		});
		$("#" + f + " TEXTAREA").each( function () {
			d[i] = $(this).attr("id") + "=" + hacerEscapeEspecial($(this).val());
			i++;
		});
		//alert(d.join("&"));
		return d.join("&");
	} else {
		return "";
	}
}



/********** TRAIDO DE COMUN.JS **************/

function marcarCampoErroneo(c) {
/*	if ($("#" + c).parent().hasClass("redondo")) {
		$("#" + c).parent().removeClass("redondo");
		$("#" + c).parent().addClass("redondoerror");
	}*/
}

var arrayPaises = [
	{texto:'Afghanistán', codigo:'AF'}, {texto:'Albania', codigo:'AL'}, {texto:'Alemania', codigo:'DE'}, {texto:'Andorra', codigo:'AD'}, {texto:'Anguila', codigo:'AI'}, {texto:'Antigua y Barbuda', codigo:'AG'}, {texto:'Antillas Holandesas', codigo:'AN'}, {texto:'Arabia Saudí', codigo:'SA'}, {texto:'Argelia', codigo:'DZ'}, {texto:'Argentina', codigo:'AR'}, {texto:'Aruba', codigo:'AW'}, {texto:'Australia', codigo:'AU'}, {texto:'Austria', codigo:'AT'}, {texto:'Bélgica', codigo:'BE'}, {texto:'Bahamas', codigo:'BS'}, {texto:'Bahrein', codigo:'BH'}, {texto:'Bangladesh', codigo:'BD'}, {texto:'Barbados', codigo:'BB'}, {texto:'Belice', codigo:'BZ'}, {texto:'Benin', codigo:'BJ'}, {texto:'Bermuda', codigo:'BM'}, {texto:'Bielorrusia', codigo:'BY'}, {texto:'Bolivia', codigo:'BO'}, {texto:'Bosnia - Herzegovina', codigo:'BA'}, {texto:'Botswana', codigo:'BW'}, {texto:'Brasil', codigo:'BR'}, {texto:'Brunei Darussalam', codigo:'BN'}, {texto:'Bulgaria', codigo:'BG'}, {texto:'Burkina Faso', codigo:'BF'}, {texto:'Burundi', codigo:'BI'}, {texto:'Cabo Verde', codigo:'CV'}, {texto:'Camboya', codigo:'KH'}, {texto:'Camerún', codigo:'CM'}, {texto:'Canadá', codigo:'CA'}, {texto:'Chad', codigo:'TD'}, {texto:'Chile', codigo:'CL'}, {texto:'China', codigo:'CN'}, {texto:'Chipre', codigo:'CY'}, {texto:'Colombia', codigo:'CO'}, {texto:'Congo', codigo:'CG'}, {texto:'Corea', codigo:'KR'}, {texto:'Costa de Marfil', codigo:'CI'}, {texto:'Costa Rica', codigo:'CR'}, {texto:'Croacia', codigo:'HR'}, {texto:'Cuba', codigo:'CU'}, {texto:'Dinamarca', codigo:'DK'}, {texto:'Dominica', codigo:'DM'}, {texto:'Ecuador', codigo:'EC'}, {texto:'Egipto', codigo:'EG'}, {texto:'El Salvador', codigo:'SV'}, {texto:'Emiratos Árabes Unidos', codigo:'AE'}, {texto:'Eritrea', codigo:'ER'}, {texto:'Eslovaquia', codigo:'SK'}, {texto:'Eslovenia', codigo:'SI'}, {texto:'España', codigo:'ES'}, {texto:'Estados Unidos', codigo:'US'}, {texto:'Estonia', codigo:'EE'}, {texto:'Etiopía', codigo:'ET'}, {texto:'Fiji', codigo:'FJ'}, {texto:'Filipinas', codigo:'PH'}, {texto:'Finlandia', codigo:'FI'}, {texto:'Francia', codigo:'FR'}, {texto:'Georgia', codigo:'GE'}, {texto:'Ghana', codigo:'GH'}, {texto:'Gibraltar', codigo:'GI'}, {texto:'Granada', codigo:'GD'}, {texto:'Grecia', codigo:'GR'}, {texto:'Groenlandia', codigo:'GL'}, {texto:'Guadalupe', codigo:'GP'}, {texto:'Guam', codigo:'GU'}, {texto:'Guatemala', codigo:'GT'}, {texto:'Guinea', codigo:'GN'}, {texto:'Haiti', codigo:'HT'}, {texto:'Honduras', codigo:'HN'}, {texto:'Hong Kong', codigo:'HK'}, {texto:'Hungría', codigo:'HU'}, {texto:'India', codigo:'IN'}, {texto:'Indonesia', codigo:'ID'}, {texto:'Irán', codigo:'IR'}, {texto:'Irlanda', codigo:'IE'}, {texto:'Isla Niue', codigo:'NU'}, {texto:'Islandia', codigo:'IS'}, {texto:'Islas Caimán', codigo:'KY'}, {texto:'Islas Cook', codigo:'CK'}, {texto:'Islas del Canal', codigo:'IC'}, {texto:'Islas Faroe', codigo:'FO'}, {texto:'Islas Marshall', codigo:'MH'}, {texto:'Islas Reunión', codigo:'RE'}, {texto:'Islas Salomón', codigo:'SB'}, {texto:'Islas Vírgenes', codigo:'VI'}, {texto:'Israel', codigo:'IL'}, {texto:'Italia', codigo:'IT'}, {texto:'Jamaica', codigo:'JM'}, {texto:'Japón', codigo:'JP'}, {texto:'Jordania', codigo:'JO'}, {texto:'Kazakhastan', codigo:'KZ'}, {texto:'Kenia', codigo:'KE'}, {texto:'Kirgistán', codigo:'KG'}, {texto:'Kiribati', codigo:'KI'}, {texto:'Kuwait', codigo:'KW'}, {texto:'Líbano', codigo:'LB'}, {texto:'Laos', codigo:'LA'}, {texto:'Lesotho', codigo:'LS'}, {texto:'Letonia', codigo:'LV'}, {texto:'Libia', codigo:'LY'}, {texto:'Liechtenstein', codigo:'LI'}, {texto:'Lituania', codigo:'LT'}, {texto:'Luxemburgo', codigo:'LU'}, {texto:'México', codigo:'MX'}, {texto:'Mónaco', codigo:'MC'}, {texto:'Macao', codigo:'MO'}, {texto:'Macedonia', codigo:'MK'}, {texto:'Malí', codigo:'ML'}, {texto:'Malasia', codigo:'MY'}, {texto:'Malawi', codigo:'MW'}, {texto:'Maldivas', codigo:'MV'}, {texto:'Malta', codigo:'MT'}, {texto:'Marruecos', codigo:'MA'}, {texto:'Martinica', codigo:'MQ'}, {texto:'Mauricio', codigo:'MU'}, {texto:'Mauritania', codigo:'MR'}, {texto:'Micronesia', codigo:'FM'}, 
	{texto:'Moldavia', codigo:'MG'}, {texto:'Mongolia', codigo:'MN'}, {texto:'Montserrat', codigo:'MS'}, {texto:'Mozambique', codigo:'MZ'}, 
	{texto:'Myanmar', codigo:'MM'}, {texto:'Namibia', codigo:'NA'}, {texto:'Nauru', codigo:'NR'}, {texto:'Nepal', codigo:'NP'}, {texto:'Nicaragua', codigo:'NI'}, {texto:'Niger', codigo:'NE'}, {texto:'Nigeria', codigo:'NG'}, {texto:'Noruega', codigo:'NO'}, {texto:'Nueva Caledonia', codigo:'NC'}, {texto:'Nueva Zelanda', codigo:'NZ'}, {texto:'Omán', codigo:'OM'}, {texto:'Países Bajos', codigo:'NL'}, {texto:'Pakistán', codigo:'PK'}, 
	{texto:'Panamá', codigo:'PA'}, {texto:'Papua Nueva Guinea', codigo:'PG'}, {texto:'Paraguay', codigo:'PY'}, {texto:'Perú', codigo:'PE'}, {texto:'Polinesia Francesa', codigo:'PF'}, {texto:'Polonia', codigo:'PL'}, {texto:'Portugal', codigo:'PT'}, {texto:'Puerto Rico', codigo:'PR'}, {texto:'Qatar', codigo:'QA'}, {texto:'Reino Unido', codigo:'GB'}, {texto:'República Checa', codigo:'CZ'}, {texto:'República Dominicana', codigo:'DO'}, {texto:'Rep. Centroafricana', codigo:'CF'}, {texto:'Ruanda', codigo:'RW'}, {texto:'Rumania', codigo:'RO'}, {texto:'Rusa, Federación', codigo:'RU'}, {texto:'Saint Kitts y Nevis', codigo:'KN'}, {texto:'Samoa', codigo:'WS'}, {texto:'San Vicente y las Granadinas', codigo:'VC'}, {texto:'Santa Helena', codigo:'SH'}, {texto:'Santa Lucía', codigo:'LC'}, {texto:'Senegal', codigo:'SN'}, {texto:'Seychelles', codigo:'SC'}, {texto:'Singapur', codigo:'SG'}, {texto:'Siria, República Árabe', codigo:'SY'}, {texto:'Somalia', codigo:'SO'}, {texto:'Sri Lanka', codigo:'LK'}, {texto:'Suazilandia', codigo:'SZ'}, {texto:'Sudáfrica', codigo:'ZA'}, {texto:'Sudán', codigo:'SD'}, {texto:'Suecia', codigo:'SE'}, {texto:'Suiza', codigo:'CH'}, {texto:'Surinam', codigo:'SR'}, {texto:'Túnez', codigo:'TN'}, {texto:'Tadyikistán', codigo:'TJ'}, {texto:'Tahiti', codigo:'TI'}, {texto:'Tailandia', codigo:'TH'}, {texto:'Taiwán', codigo:'TW'}, {texto:'Tanzania', codigo:'TZ'}, {texto:'Togo', codigo:'TG'}, {texto:'Tonga', codigo:'TO'}, {texto:'Trinidad y Tobago', codigo:'TT'}, {texto:'Turkmenistan', codigo:'TM'}, {texto:'Turquía', codigo:'TR'}, {texto:'Tuvalu', codigo:'TV'}, {texto:'Ucrania', codigo:'UA'}, {texto:'Uganda', codigo:'UG'}, {texto:'Uruguay', codigo:'UY'}, {texto:'Uzbekistán', codigo:'UZ'}, {texto:'Vanuatu', codigo:'VU'}, {texto:'Venezuela', codigo:'VE'}, {texto:'Vietnam', codigo:'VN'}, {texto:'Yemen', codigo:'YE'}, {texto:'Yibuti', codigo:'DJ'}, {texto:'Yugoslavia', codigo:'YU'}, {texto:'Zaire', codigo:'ZR'}, {texto:'Zambia', codigo:'ZM'}, {texto:'Zimbabwe', codigo:'ZW'}
];

var arrayRegionesES = [
	{texto:'Alava', codigo:'VI'}, {texto:'Albacete', codigo:'AB'}, {texto:'Alicante', codigo:'A'}, {texto:'Almeria', codigo:'AL'}, {texto:'Asturias', codigo:'O'}, {texto:'Avila', codigo:'AV'}, {texto:'Badajoz', codigo:'BA'}, {texto:'Barcelona', codigo:'B'}, {texto:'Burgos', codigo:'BU'}, {texto:'Caceres', codigo:'CC'}, {texto:'Cadiz', codigo:'CA'}, {texto:'Cantabria', codigo:'S'}, {texto:'Castellon', codigo:'CS'}, {texto:'Ceuta', codigo:'CE'}, {texto:'Ciudad Real', codigo:'CR'}, {texto:'Cordoba', codigo:'CO'}, {texto:'Cuenca', codigo:'CU'}, {texto:'Formentera', codigo:'FOR'}, {texto:'Formentera Poblacion', codigo:'FORP'}, {texto:'Gerona', codigo:'GE'}, {texto:'Granada', codigo:'GR'}, {texto:'Guadalajara', codigo:'GU'}, {texto:'Guipuzcoa', codigo:'SS'}, {texto:'Huelva', codigo:'H'}, {texto:'Huesca', codigo:'HU'}, {texto:'Jaen', codigo:'J'}, {texto:'La Coruna', codigo:'C'}, {texto:'La Rioja', codigo:'LO'}, {texto:'Las Palmas', codigo:'GC'}, {texto:'Las Palmas Poblacion', codigo:'GCP'}, {texto:'Leon', codigo:'LE'}, {texto:'Lerida', codigo:'L'}, {texto:'Los Menores', codigo:'ICM'}, {texto:'Los Menores (Poblaciones)', codigo:'ICMP'}, {texto:'Lugo', codigo:'LU'}, {texto:'Madrid', codigo:'M'}, {texto:'Malaga', codigo:'MA'}, {texto:'Mallorca', codigo:'PM'}, {texto:'Mallorca (Poblaciones)', codigo:'PMP'}, {texto:'Melilla', codigo:'ML'}, {texto:'Menorca', codigo:'MEN'}, {texto:'Menorca (Poblaciones)', codigo:'MENP'}, {texto:'Murcia', codigo:'MU'}, {texto:'Navarra', codigo:'NA'}, {texto:'Orense', codigo:'OR'}, {texto:'Palencia', codigo:'P'}, {texto:'Pontevedra', codigo:'PO'}, {texto:'Salamanca', codigo:'SA'}, {texto:'Santa Cruz De Tenerife', codigo:'TF'}, {texto:'Santa Cruz De Tenerife (Poblaciones)', codigo:'TFP'}, {texto:'Segovia', codigo:'SG'}, {texto:'Sevilla', codigo:'SE'}, {texto:'Soria', codigo:'SO'}, {texto:'Tarragona', codigo:'T'}, {texto:'Teruel', codigo:'TE'}, {texto:'Toledo', codigo:'TO'}, {texto:'Valencia', codigo:'V'}, {texto:'Valladolid', codigo:'VA'}, {texto:'Vizcaya', codigo:'BI'}, {texto:'Zamora', codigo:'ZA'}, {texto:'Zaragoza', codigo:'Z'}
];

var arrayTemasES = [
	{ficcion:'F', nombre:'Biografías, autobiografías y memorias', id:'4'}, {ficcion:'F', nombre:'Narrativa', id:'1'}, {ficcion:'F', nombre:'Narrativa erótica', id:'3'}, {ficcion:'F', nombre:'Policiacos', id:'2'}, {ficcion:'NF', nombre:'Arte', id:'5'}, {ficcion:'NF', nombre:'Biografías, autobiografías y memorias', id:'6'}, {ficcion:'NF', nombre:'Ciencia', id:'7'}, {ficcion:'NF', nombre:'Ciencias sociales', id:'8'}, {ficcion:'NF', nombre:'Cine, teatro y radio', id:'9'}, {ficcion:'NF', nombre:'Filosofía', id:'11'}, {ficcion:'NF', nombre:'Gastronomía', id:'12'}, {ficcion:'NF', nombre:'Historia', id:'13'}, {ficcion:'NF', nombre:'Literatura varia', id:'14'}, {ficcion:'NF', nombre:'Otros', id:'16'}, {ficcion:'NF', nombre:'Poesía', id:'15'} 
];

function buscartexto(t) {
	document.location.href = "/buscador/" + QuitarAcentos(quitarOtrasPalabras(quitarArticulosPreposiciones(t)));
}

