<!--

	/* **************************************************************************************************************
	   ** Funciones comunes a varias partes del web *****************************************************************
	   **************************************************************************************************************
	*/

	//----------------------------------------------------------------
	//Esta función controla que no se haya elegido un elemento inválido dentro
	//de un combo. El elemento inválido será el que tenga una cadena vacía ""
	//en su campo Value. Si la elección es válida, se autoredirige a la
	//url_destino y si url_destino = '', entonces envía el formulario
	//donde esté contenido "combo"
	//----------------------------------------------------------------
	function validarSeleccionYProcesar( combo, url_destino )
	{
		// por defecto se devuelve true y se envía el formulario
		var mensaje = '';
		
		// Determino el valor del elemento seleccionado y actúo
		if (combo.options[combo.selectedIndex].value == '')
			mensaje='Debe elegir una opción válida de la lista';

	 	// Decido si hay que avisar de los posibles errores o enviar el formulario.
	 	if (mensaje != '')
	 		alert(mensaje);
	 	else
	 	{
			//Envío el formulario al que pertenece el combo o me redirijo
			if (url_destino != '')
				window.location=url_destino;
			else
				combo.form.submit();
	 	}
	
		// Devuelvo el resultado de la función
		return (mensaje=='');
	}


	//----------------------------------------------------------------
	//Esta función genera en tiempo real la dirección e-mail. Así se evita que los robots las capturen de los .htm
	//----------------------------------------------------------------
	function generarDireccionEmail( InputStr1, Dir, InputStr2 )
	{
		document.write(InputStr1);
		document.write(Dir + '@' + 'jm-soft' + '.' + 'com');
		document.write(InputStr2);
	}
	
	//----------------------------------------------------------------
	// Esta función abre una ventana del navegados con una dirección y unas características concretas
	//----------------------------------------------------------------
	function popOpen(url, width, height, top, left, scroll, titventana, centrado)
	{	
	
		// genero el nombre de la ventana a partir de códigos ascii de letras minúsculas
		var tituloventana;
		var asciialeatorio;
		var nuevaventana;
	
		//Compruebo si se debe mostrar la ventana centrada.
		if (centrado=='yes')
		{
			var xcentrado = Math.round( (screen.width / 2) - (width / 2) );
			var ycentrado = Math.round( (screen.height / 2) - (height / 2) );
			
			left = xcentrado;
			top = ycentrado;
		}
	
		tituloventana = '';
		for (i = 0; i <= 5; i++)
		{
			asciialeatorio = Math.floor((Math.random()*97)+26);
			tituloventana += asciialeatorio.toString(10);
		}
	
		//Si no se indicó título de ventana, asigno el aleatorio
	
		// Si he indicado el nombre de la ventana lo signo, sino se que queda con el calculado.
		if (titventana != '' )
		{
			tituloventana = titventana;
		}
	
		// Abro la ventana.
		nuevaventana = null
		nuevaventana = window.open(url, tituloventana, 'width=' + width + ', height=' + height + ', top=' + top + ', left=' + left + ', scrollbars=' + scroll + ', resizable=no, menubar=no, status=no, menubar=no' );
	
	}
	
	
	//----------------------------------------------------------------
	// Determina el número que veces que aparece C1 en C2
	//----------------------------------------------------------------
	function contarApariciones(c1, c2)
	{
		var n;
		var k;
		
		n=0;
		k=0;
		while(k!=-1)
		{
			k=c2.indexOf(c1,k+1);
			n++;
		}
		
		return (n-1);
	}
	
	
	/* **************************************************************************************************************
	   ** Funciones de verificación de datos ************************************************************************
	   **************************************************************************************************************
	*/
	
	
	//----------------------------------------------------------------
	//Esta función añade un nuevo elemento a la lista indicada
	//----------------------------------------------------------------
	function agregarElementoLista(id, descripcion, lista)
	{
	
		var nuevaopcion = new Option();
		
		nuevaopcion.value = id;
		nuevaopcion.text = descripcion;
		lista[lista.length] = nuevaopcion;
	
		return true;
	}
	
	
	//----------------------------------------------------------------
	//Esta función quita el elemento indicado de la lista indicada
	//----------------------------------------------------------------
	function quitarElementoLista( lista, idx )
	{
		lista.options[idx]=null;
	
		return true;
	}
	
	
	//----------------------------------------------------------------
	// Esta función formatea un número con el formato 0,00 (dos decimales)
	// Los número deben entrar con el "." como símbolo decimal
	//----------------------------------------------------------------
	function formatearNumero( numero )
	{
		var n = '';
		var poscoma = 0;
		var ndecimales = 0;
	
		//Paso el número a cadena
		n = numero.toString();
	
		//Quito las "," como separadores decimales y los "." como separadores de miles
		//dejando los miles sin separación y los decimales separados por "."
		//Solo realizo esa operación si existe alguna "," en el número
		if (n.indexOf(',') != -1)
		{
			n = n.replace('.','');
			n = n.replace(',','.');
		}
	
		//Determino la posición de la coma decimal
		poscoma = n.indexOf('.');
		
		//Determino el número de decimales que tiene el número a partir de la posición de la coma
		if (poscoma != -1)
			switch (n.length-poscoma-1)
			{
				//Un decimal
				case 1:
					n = n.concat('0');
					break;
				//Dos decimales
				case 2:
					break;
			}
		else
			//Ningún decimal
			n = n.concat('.00');
	
		//Establezco la notación con el separador "," para decimales
		n = n.toString().replace('.',',');
	
		return (n);
	}


	//----------------------------------------------------------------
	// Esta función formatea un número con el formato 0.00 (dos decimales)
	// Los número deben entrar con la "," como símbolo decimal y sin nada
	// como separador de miles
	//----------------------------------------------------------------
	function formatearNumeroXE( numero )
	{
		var n = '';
		var poscoma = 0;
		var ndecimales = 0;
	
		//Paso el número a cadena
		n = numero.toString();
	
		//Cambio las "," por los "." como separadores decimales
		//Solo realizo esa operación si existe alguna "," en el número
		if (n.indexOf(',') != -1)
			n = n.replace(',','.');
	
		return (n);
	}


	//----------------------------------------------------------------
	//Esta función cambia el estado de visibilidad de una capa
	//No se usa 'collapse' porque IE 6 da un error javascript, ya que
	//no lo entiende.
	//----------------------------------------------------------------
	function invertirVisibilidadCapa( oCapa )
	{
		var oLayer = document.getElementById( oCapa );

	  if ((oLayer.style.display == 'block') || (oLayer.style.visibility == 'visible'))
	  {
			oLayer.style.display = 'none';
			oLayer.style.visibility = 'hidden';
		}
		else
		{
			oLayer.style.display = 'block';
			oLayer.style.visibility = 'visible';
		}
	}

//-->