///////////////////////////////////
//      Script general v1.0      //
//	 Ultima revisión: 27-9-2001  //
///////////////////////////////////

// Implementación OPERA v.5


var aListaTareas = new Array();
var ie4 = false;
var ns4 = false;
var ns6 = false;
var ns7 = false;
var mac = false;
var ope = false;
var ie5 = false;
var ie6 = false;
var ffox1 = false;
	
if(navigator.userAgent.indexOf('Mac') != -1){
	mac = true;
}

if(navigator.userAgent.indexOf('Opera') != -1){
	ope = true;
}

if(navigator.userAgent.indexOf('Firefox') != -1){
	ffox1 = true;
}
	
if (navigator.appVersion >= '4') { 
	if (navigator.appName == 'Netscape') {
		ns4 = true;
		if (navigator.appVersion.charAt(0) == 5){ //Revisar, forma de saber si ns6
			ns4 = false;
			ns6 = true; 
			if ((navigator.userAgent.indexOf("Netscape/7") != -1) || (navigator.userAgent.indexOf("Netscape")==-1))
				ns7 = true;
           
		}
	}
	else { 
		ie4 = true; 
		
		if (navigator.userAgent.indexOf("MSIE 5.01") != -1)
			ie5 = true;
		if (navigator.userAgent.indexOf("MSIE 6.") != -1)
				ie6 = true;
	} 
}

if (ns4 || ns6) 
	Netscape = true;
else
	Netscape = false;
	

	
if(ns4){ origWidth=innerWidth;origHeight=innerHeight;onresize=function(){if(innerWidth!=origWidth||innerHeight!=origHeight)location.reload()} }

function LimpiaArray(aLista)
{
	var aListaTemp = new Array(); 
	
	for (x=0;x<=aLista.length-1;x++) { if (aLista[x] != null) { aListaTemp[aListaTemp.length] = aLista[x]; }}
	return aListaTemp;
}	

function AniadirTarea(cTarea, cDesc, nPosicion)
{
	if (!isNaN(nPosicion)) {
	
		var aListaTemp = new Array(aListaTareas.length+1);
		var nSumando = 0;
		var nLength = 0
	
		aListaTemp[nPosicion] = new Array(); 
		aListaTemp[nPosicion][0] = cTarea;	
		aListaTemp[nPosicion][1] = cDesc;

		for (x=0;x<=(aListaTareas.length);x++) {
			if (x == nPosicion) {
				nSumando = 1;
				x++;
			}
			aListaTemp[x] = new Array();
			aListaTemp[x][0] = aListaTareas[x-nSumando][0];
			aListaTemp[x][1] = aListaTareas[x-nSumando][1];
		}
		aListaTareas = aListaTemp;
	}
	else {	
		nLength = aListaTareas.length
		aListaTareas[nLength] = new Array();
		aListaTareas[nLength][0] = cTarea;
		aListaTareas[nLength][1] = cDesc;
		nLength = aListaTareas.length
		aListaTareas = LimpiaArray(aListaTareas);
	}
}
	
function EliminarTarea(cDesc, nModo)
{
	for (x=0;x<(aListaTareas.length);x++) 
	{
		if (aListaTareas[x][1] == cDesc) 
		{ 
			aListaTareas[x] = null; 
			
			if (nModo == 0) { aListaTareas = LimpiaArray(aListaTareas); return true; }
		}
	}
	aListaTareas = LimpiaArray(aListaTareas);
	return false	
}
function EjecutarTareas() {	if (aListaTareas.length > 0) { eval(aListaTareas[0][0]); }}


///////////////////////////////////
//    Control de Capas v1.0      //
//	 Ultima revisión: 26-09-2001   //
///////////////////////////////////

function GetLayerRef(cLayer, lWithDoc)
{
	var nLyBucle;
	var GLayerRef = "";
	var templayer;
	
	if(isNaN(lWithDoc)){ lWithDoc=1;}
	
	if (ope==true) {
		if (lWithDoc == 0)	{ templayer = document.getElementById(cLayer); 	}	else { templayer = document.getElementById(cLayer).document; }
		return  templayer;
	}
	else if (ie4) {
		if (lWithDoc == 0)	{ templayer = document.all.item(cLayer); } else { templayer = document.all.item(cLayer).document; }
		return  templayer;
	}
	else if (ns4) {
		for (nLyBucle=0; nLyBucle < document.layers.length; nLyBucle++) {
			templayer = document.layers[nLyBucle];
			if ( templayer.id == cLayer ){
				if (lWithDoc == 0) { GLayerRef = templayer; } else { GLayerRef = templayer.document; }
			}
		}
		return GLayerRef;
	}
	else if (ns6) {
		if (lWithDoc == 0){templayer = document.getElementById(cLayer);}	
		else { 
			templayer = document.getElementById(cLayer).document; 
		}
		return templayer;
	}
}

function MoveLayer (cLayer, nPosx, nPosy)
{
	var  nLyBucle;

	if (ope==true) {
		document.getElementById(cLayer).style.left = nPosx;
		document.getElementById(cLayer).style.top = nPosy;
	}
	else if (ie4)
	{
		document.all.item(cLayer).style.pixelLeft = nPosx;
		document.all.item(cLayer).style.pixelTop = nPosy;
	}
	else if (ns4)
	{
		templayer = GetLayerRef(cLayer, 0)
		templayer.left = nPosx;
		templayer.top = nPosy;
	}
	else if (ns6) {
		document.getElementById(cLayer).style.left = nPosx;
		document.getElementById(cLayer).style.top = nPosy;
	}
}

function ResizeLayer ( cLayer, nWidth, nHeight)
{
	var  nLyBucle;

	if (ope==true) {
		document.getElementById(cLayer).style.pixelWidth = nWidth;
		document.getElementById(cLayer).style.pixelHeight = nHeight;
	}
	else if (ie4)
	{
		document.all.item(cLayer).style.pixelWidth = nWidth;
		document.all.item(cLayer).style.pixelHeight = nHeight;
	}
	else if (ns4)
	{
		templayer = GetLayerRef(cLayer, 0)
		templayer.resizeTo( nWidth, nHeight);
	}
	else if (ns6) {
		document.getElementById(cLayer).style.width = nWidth;
		document.getElementById(cLayer).style.height = nHeight;
	}
}
////// 

function SetzIndex (cLayer, nPos)
{
	var  nLyBucle;
	
	if (ope==true) {
		document.getElementById(cLayer).style.zIndex = nPos;
	}
	else if (ie4)
	{
		document.all.item(cLayer).style.zIndex = nPos;
	}
	else if (ns4)
	{
		templayer = GetLayerRef(cLayer, 0)
		templayer.zIndex = nPos;
	}
	else if (ns6) {
		document.getElementById(cLayer).style.zIndex = nPos;
	}
}


function SetTop (cLayer, nPos)
{
	var  nLyBucle;
	if (ope==true) {
		document.getElementById(cLayer).style.top = nPos;
	}
	else if (ie4)
	{
		document.all.item(cLayer).style.pixelTop = nPos;
	}
	else if (ns4)
	{
		templayer = GetLayerRef(cLayer, 0)
		templayer.top = nPos;
	}
	else if (ns6) {
		document.getElementById(cLayer).style.top = nPos;
	}
}

function SetLeft (cLayer, nPos)
{
	var  nLyBucle;

	if (ope==true) {
		document.getElementById(cLayer).style.left = nPos;
	}
	else if (ie4)
	{
		document.all.item(cLayer).style.pixelLeft = nPos;
	}
	else if (ns4)
	{
		templayer = GetLayerRef(cLayer, 0)
		templayer.left = nPos;
	}
	else if (ns6) {
		document.getElementById(cLayer).style.left = nPos;
	}
}

function SetWidth (cLayer, nPos)
{
	var  nLyBucle;

	if (ope==true) {
		document.getElementById(cLayer).style.pixelWidth = nPos;
	}
	else if (ie4)
	{
		document.all.item(cLayer).style.pixelWidth = nPos;
	}
	else if (ns4)
	{
		templayer = GetLayerRef(cLayer, 0)
		templayer.resizeTo(nPos, GetHeight(cLayer));
	}
	else if (ns6) {
		document.getElementById(cLayer).style.width = nPos;
	}
}

function SetHeight (cLayer, nPos)
{
	var  nLyBucle;

	if (ope==true) {
		document.getElementById(cLayer).style.pixelHeight = nPos;
	}
	else if (ie4)
	{
		document.all.item(cLayer).style.pixelHeight = nPos;
	}
	else if (ns4)
	{
		templayer = GetLayerRef(cLayer, 0)
		templayer.resizeTo(GetWidth(cLayer), nPos);
	}
	else if (ns6) {
		document.getElementById(cLayer).style.height = nPos;
	}
}

function GetWidth(cLayer) {
	var nLyBucle;
	var GWidth = 0;

	if (ope==true) {
		return parseInt(document.getElementById(cLayer).style.pixelWidth)
	}
	else if (ie4) { return document.all.item(cLayer).clientWidth; }
	else if (ns4) {
		templayer = GetLayerRef(cLayer, 0)
		GWidth = templayer.document.width;
		return GWidth;
	}
	else if (ns6) {
		return parseInt(document.getElementById(cLayer).style.width);
	}
}

function GetHeight(cLayer) {
	var nLyBucle;
	var GHeight = 0;

	if (ope==true) {
		return parseInt(document.getElementById(cLayer).style.pixelHeight)
	}
	else if (ie4) { return document.all.item(cLayer).clientHeight; }
	else if (ns4) {
		templayer = GetLayerRef(cLayer, 0)
		GHeight = templayer.document.height;
		return GHeight;
	}
	else if (ns6) {
		return parseInt(document.getElementById(cLayer).style.height);
	}
}

function GetLeft(cLayer)
{
	var nLyBucle;
	var GLeft = 0;

	if (ope==true) {
		return parseInt(document.getElementById(cLayer).style.left);
	}
	else if (ie4) { return document.all.item(cLayer).style.pixelLeft; }
	else if (ns4) {
		templayer = GetLayerRef(cLayer, 0)
		GLeft = templayer.left;
		return GLeft;
	}
	else if (ns6) {
		return parseInt(document.getElementById(cLayer).style.left);
	}
}

function GetzIndex(cLayer) {
	var nLyBucle;
	var GzIndex = 0;
	
	if (ope==true) {
		return parseInt(document.getElementById(cLayer).style.zIndex);
	}
	else if (ie4) { return document.all.item(cLayer).style.zIndex; }
	else if (ns4) {
		templayer = GetLayerRef(cLayer, 0)
		GzIndex = templayer.zIndex;
		return GzIndex;
	}
	else if (ns6) {
		return parseInt(document.getElementById(cLayer).style.zIndex);
	}
}

function GetTop(cLayer)
{
	var nLyBucle;
	var GTop = 0;

	if (ope==true) {
		return parseInt(document.getElementById(cLayer).style.top);
	}
	else if (ie4) { 
		return document.all.item(cLayer).style.pixelTop;
	}
	else if (ns4) {
		templayer = GetLayerRef(cLayer, 0)
		GTop = templayer.top;
		return GTop
	}
	else if (ns6) {
		return parseInt(document.getElementById(cLayer).style.top);
	}
}

function ChangeLayerContent(cLayer, cContent) {
	var  nLyBucle;
	if (ope==true) {
		// No funciona	
	}
	else if (ie4) { 
		//document.write (cContent);
		//templayer.document.close();
		document.all.item(cLayer).innerHTML = cContent; }
	else if (ns4)
	{
		templayer = GetLayerRef(cLayer, 0);	
		templayer.document.write (cContent);
		templayer.document.close();
	}
	else if (ns6) {
			document.getElementById(cLayer).innerHTML = cContent;
	}
}


function ClipLayer (cLayer, nLeft, nTop, nRight, nBottom)
{
	var  nLyBucle;

	if (ope==true) {
		//No funciona
	}
	else if (ie4)
	{
	    document.all.item(cLayer).style.clip = "rect(" + nTop + "px " + nRight + "px " + nBottom + "px " + nLeft + "px)" ;
	}
	else if (ns4)
	{
		templayer = GetLayerRef(cLayer, 0)
	    templayer.clip.top = nTop 
	    templayer.clip.left = nLeft 
	    templayer.clip.bottom = nBottom 
	    templayer.clip.right = nRight 
	}
	else if (ns6) {
			document.getElementById(cLayer).style.clip = "rect(" + nTop + "px " + nRight + "px " + nBottom + "px " + nLeft + "px)";
	}
}

function ChangeVisibility(cLayer, nEstado){
	
	var  nLyBucle;

	if (ope==true) {
		if (nEstado == 1)
			document.getElementById(cLayer).style.visibility = "visible";
		else
			document.getElementById(cLayer).style.visibility = "hidden";
	}
	else if (ie4)
	{
		if (nEstado == 1)
			document.all.item(cLayer).style.visibility = "visible";
		else
			document.all.item(cLayer).style.visibility = "hidden"; 
	}
	else if (ns4)
	{
		templayer = GetLayerRef(cLayer, 0)
		if (nEstado == 1) {	templayer.visibility = "show"; } else { templayer.visibility = "hidden"; }
	}
	else if (ns6) {
		if (nEstado == 1)
			document.getElementById(cLayer).style.visibility = "visible";
		else
			document.getElementById(cLayer).style.visibility = "hidden";
			
		
	}
}

function GetVisibility(cLayer){

	var  nLyBucle;
	var lEstado; 		// Estado de la capa 1 visible - 0 invisible - 3 ni se sabe

	if (ie4)
	{
		if (document.all.item(cLayer).style.visibility == "visible") {	lEstado = 1;}
		else if (document.all.item(cLayer).style.visibility == "hidden") {	lEstado = 0; }
		else	{lEstado = 3}		
	}	
	else if (ns4)
	{
		templayer = GetLayerRef(cLayer, 0)
		if (templayer.visibility == "show") { lEstado = 1; }
		else if (templayer.visibility == "hidden") { lEstado = 0; }
		else { lEstado = 3; }
	}
	else if (ns6) {
		if (document.getElementById(cLayer).style.visibility == "visible") {	lEstado = 1;}
		else if (document.getElementById(cLayer).style.visibility == "hidden") {	lEstado = 0;}
		else	{lEstado = 3}		
	}
	return lEstado;
}

/// Revisar eventos del ratón

function MouseX() { 
		return (event.clientX + document.body.scrollLeft);
}	

function MouseY() {
		return (event.clientY + document.body.scrollTop);
}

	//Función que comprueba si un texto tiene operadores lógicos, y si esta bien formada la frase
	function ComprobarTextoLibre(text){
		var i,j, valor, len, par,caracter
		var logico = false;
		//Cojo el texto, pongo en principio que no hay lógicos, y la longitud
		valor = text;
		//document.formbuscador.logico.value = "no";
		len = valor.length;
		
		i=0;
		
		//Texto no vacio, por supuesto
		if (len>0){
		
			//Impedimos la entrada de ' o ".	
			i=0;
			
			for (i=0;i<len;i++)
			{
				caracter =valor.substr(i,1);
				if(caracter== "'")
				{
					alert("No se puede introducir '");
					return false;
				}
			}
			// Se quita la validación de las comillas.
			//-------------------------------------------------------
			//i=0;
			//for (i=0;i<len;i++)
			//{
			//	caracter =valor.substr(i,1);
			//	
			//	if(escape(caracter)== "%22")
			//	{
			//		alert("No se puede introducir "+ unescape("%22"));
			//		return false;
			//	}
			//}
			//------------------------------------------------------
			
			//Cuenta los parentesis para que sean coherentes	
			i=0;
			par=0;
			
			for (i=0;i<len;i++)
			{
				caracter =valor.substr(i,1);
				if(caracter== "(")
					par = par+1;
				if(caracter== ")") 
					par = par-1;
				
			}
		
			if (par != 0)
				{
					alert("Compruebe los paréntesis");
					return false;
				}
			
			i=0;
			//Si tiene blancos delante, los quita
			if (valor.substr(i,1)==' ')
				for(i=0; valor.substr(i,1)== ' ';i++);
			
			//Coje la primera palabra, hasta que haya un espacio
			for(j=i; valor.substr(j,1)!= ' ' && j<len ;j++);
			//Si es un operador la palabra o no
			if (eslogico(i, j, valor)){
				//Si es un operador es la primera palabra, no esta bien montada la frase
				alert("Falta un campo delante de un operador");
				//document.formbuscador.logico.value = "no";
				return false;
			//No es un operador la primera palabra, continuemos para el resto
			}else{
				for(i=j;i<len;i++){
					//Quitamos los blancos
					for(j=i;valor.substr(j,1)== ' ';j++);
					//Cogemos las siguiente palabra
					for(i=j; valor.substr(i,1)!= ' ' && i<len ;i++);
					//Vemos si es operador o no
					if(eslogico(j, i, valor)){
						//Si es operador, comprobamos si el anterior era un operador tambien
						if(logico == true){
							alert("No puede colocar dos operadores lógicos juntos");
							//document.formbuscador.logico.value = "no";
							return false;
						}else{
							//document.formbuscador.logico.value = "si";
							logico = true;
						}
					//Si no es operador, ponemos a false
					}else
						logico = false;
				}		
			}
			//Hemos terminado, comprobamos que el ultimo no es un operador
			if (logico == true){
				alert("Falta un campo tras un operador");
				//document.formbuscador.logico.value = "no";
				return false;
			}
			return true;
		}
		else{
			alert("Debe rellenar el campo texto");
			return false;
		}
	}

	function ReemplazarComillas(text){
		var i,len,textoReemplazado,comilla;
		
		len = text.length;
		i=0;
		textoReemplazado = "";	
		comilla = unescape("%22");
		
		if (len>0){
			for (i=0;i<len;i++) {
				caracter =valor.substr(i,1);
				if(escape(caracter)== "%22") {
					textoReemplazado = textoReemplazado + comilla + comilla + comilla;
				}
				else {
					textoReemplazado = textoReemplazado + caracter;
				}
			}
		}
		return textoReemplazado;
	}
	
	function esTextoLibre(objeto) {

	
	var texto;
	texto="";
	
	for (i = 0; i < objeto.value.length; i++) {
		var carac = objeto.value.charAt(i);
		if (carac != " " )	
			break
		
		}
	for (j=i; j < objeto.value.length; j++) {
		texto =texto +objeto.value.charAt(j)
		}
	
	
	text = texto;
	valido = true;
	if (text == "") {
		alert("Debe insertar algún dato para buscar");
		return false;
	}
	else
		if (text.length == 1){
			alert("No se puede introducir sólo un carácter de búsqueda");
			return false;
		}
		else
			if (! (ComprobarTextoLibre(text))){
				//objeto.value= "";
				return false;
				}
			else
			{
				return true;
			}
	}

function esTextoLibreovacio(objeto) {

	//texto = document.form1.campobuscador.value;
	text = objeto.value;
	valido = true;

	if (text == "") {
		return true;
	}
	else
	
		if (! (ComprobarTextoLibre(text))){
			//objeto.value= "";
			return false;
			}
		else
		{
			return true;
		}
}

	function encode(texto) {

	
	var cambiado;
	cambiado = "";
		for (i = 0; i < texto.length; i++) {
			var c = texto.charAt(i);
			
			if ((escape(c) >= escape("a") && escape(c)<=escape("z")) || 
				(escape(c) >= escape("A") && escape(c)<=escape("Z")) || 
				(escape(c) >= escape("0") && escape(c)<=escape("9"))) 
				cambiado = cambiado+c;	
			else
					cambiado = cambiado+escape(c);
		}
	return cambiado;
	}
	

//Pasando espacios al principio y letras al final, ver si las letras forman un operador lógico
function eslogicoold(k, j, valor){
		var i
		
		if (valor.substr(k,1)==' ')
			for(i=k; valor.substr(i,1)== ' ';i++);
		else
			i=k;
		if (valor.substr(i,j-i)== 'and' || valor.substr(i,j-i)== 'or' || valor.substr(i,j-i)== 'or not' || valor.substr(i,j-i)== 'and not')
			return true;
		else if (valor.substr(i,j-i)== ' y ' || valor.substr(i,j-i)== ' o ' || valor.substr(i,j-i)== ' o no ' || valor.substr(i,j-i)== ' y no ')
			return true;
		return false;
}	

//Pasando espacios al principio y letras al final, ver si las letras forman un operador lógico
function eslogico(k, j, valor){
		var i
		
		if (valor.substr(k,1)==' ')
			for(i=k; valor.substr(i,1)== ' ';i++);
		else
			i=k;
		if (valor.substr(i,j-i)== 'and' || valor.substr(i,j-i)== 'or' || valor.substr(i,j-i)== 'not')
			return true;
		
		return false;
}	



//Funciones que permiten manejar ventanas modales en Netscape.



// Event handler to inhibit Navigator form element and Internet Explorer
// link activity when dialog window is active.
function deadend() {
 dialogWin.win.focus();
 
 return false;

}

// Grab all Navigator events that might get through to form elements while 
// dialog is open. For Internet Explorer, disable form elements.
function blockEvents() {

if (ns4) {
	window.captureEvents(Event.CLIC | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS);
	window.onclick = deadend();
	document.formprocesos.ventana.value = "Si";
	}
	window.onfocus = checkModal;
}
// As dialog closes, restore the main window's original event mechanisms.
function unblockEvents() {
	if (ns4) {
	window.releaseEvents(Event.CLIC | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS);
	window.onclick=null;
	window.onfocus=null;
	document.formprocesos.ventana.value = "No";
	}
}
function checkModal()
{
if (dialogWin.win && !dialogWin.win.closed)
	{
	dialogWin.win.focus()
	}
}

function LTrim(s){
	// Devuelve una cadena sin los espacios del principio
	var i=0;
	var j=0;
	
	// Busca el primer caracter <> de un espacio
	for(i=0; i<=s.length-1; i++)
		if(s.substring(i,i+1) != ' '){
			j=i;
			break;
		}
	return s.substring(j, s.length);
}
function RTrim(s){
	// Quita los espacios en blanco del final de la cadena
	var j=0;
	
	// Busca el último caracter <> de un espacio
	for(var i=s.length-1; i>-1; i--)
		if(s.substring(i,i+1) != ' '){
			j=i;
			break;
		}
	return s.substring(0, j+1);
}
function Trim(s){
	// Quita los espacios del principio y del final
	var trim=LTrim(RTrim(s));
	if (trim==" ") 
	{ 
		return "";
	}
	else
	{
		return trim;
	}
}
function AbreVentanaAvisos(url){
		window.open(url,"Documento","left=0,top=0,width=600,height=470")
	}