/**** ponerDescripcion *****************************
 *
 *  Funcion que actualiza el contenido de la etiqueta
 * 'divDescripcion' con el valor del parametro
 *  
 * @param String      Contenido a insertar
 * 
 ***************************************************/

function ponerDescripcion(contenido)
{ 
  divDescripcion.innerHTML = contenido;
  divDescripcion.style.visibility = "visible";
}

function pasarLineas(titulo, imagen, www)
{ 
  alert(www);
  celdaTitulo.innerHTML = titulo;
  celdaImagen.innerHTML = imagen;
  celdaWWW.innerHTML = www;
  //divDescripcion.style.visibility = "visible";
}


 /**** vaciarDescripcion *****************************
 *
 *  Funcion que vacia el contenido de la etiqueta
 * 'divDescripcion'
 *  
 ***************************************************/
function vaciarDescripcion()
{ 
  divDescripcion.style.visibility = "hidden";
}


 /**** cambiaClase ***********************************
 *
 *  Funcion que cambia la clase de "obj" 
 *  
 ***************************************************/
function cambiaClase(obj, clase)
{ 
  v_objeto = document.getElementById(obj);
  v_objeto.className = clase;
}


/**** cambiaImagen ***********************************
*
*  Funcion que cambia una imagen por otra de un elemento img
*  
***************************************************/
function cambiaImagen( imagen, new_imagen )
{
  document.getElementById(imagen).src = new_imagen;
}

/**** cambiaBoton ***********************************
 * Cambia el fondo del boton de la subcategoria 
 * @param subcat	Subcategoria a la que hay que cambiar el boton
 * @param imgIzq	Imagen izquierda que hay que poner
 * @param imgDer	Imagen derecha que hay que poner
 * @param clase		Nuevo estilo que hay que aplicar a la celda
**/
function cambiaBoton( subcat, imgIzq, imgDer, clase )
{
	var StrIzq = "imgIzq_" + subcat;
	var StrDer = "imgDer_" + subcat;
	var StrTd =  "td_" + subcat;

	cambiaImagen(StrIzq, imgIzq);				
	cambiaImagen(StrDer, imgDer);				
	document.getElementById(StrDer).src = imgDer;				
	cambiaClase(StrTd, clase);
}

/**** enviar ***********************************
 * Hace el submit del formulario indicado a la 
 * pagina indicada
 *
 * @param StrDestino	Action
 * @param StrFormulario Formulario
**/

function _enviar( StrDestino, StrFormulario )
{
   var formulario = window.document.forms[StrFormulario];
   formulario.action = StrDestino;
   formulario.submit();
}


/************************* _esEmail **********************************/
/*
Función que comprueba que el valor introducido en el objeto de texto tiene
formato de correo electrónico
@param	ObjText				Objeto de tipo texto
@return boolean			Valores:
							- TRUE si es digito o tabulador
							- FALSE si es lo contrario
*******************************************************************************/
function _esEmail(texto)
{
  ret = true;
	var patEmail = /^[a-zA-Z0-9_]+[\.\-a-zA-Z0-9_]*@([\-a-zA-Z0-9_]+\.)+[a-zA-Z]{2,3}$/
	if (texto != "")
	{
		if (patEmail.exec(texto) == null)
      ret = false;
	}
  
  return ret;
}

// ---------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------
//Abre una página nueva con nombre centrada en la página desde la que se ha abierto
// ---------------------------------------------------------------------------------------------------------------
function _ventana(StrUrl,StrNombre,IntAncho, IntAlto, StrOtros)
{

	if (IntAncho=="")
		IntAncho=750;

	if (IntAlto=="")
		IntAlto=500;

	var PosX = (screen.availWidth - IntAncho)/2;
	var PosY = (screen.availHeight - IntAlto)/2;

	return(window.open(StrUrl, StrNombre,"height=" + IntAlto + ",width=" + IntAncho + ",left=" + PosX + ",top=" +PosY + "," + StrOtros));
}

/************************* _ir **********************************/
/*
Redirecciona la pagina actual a la especifica
@param	page				Pagina a la que se quiere ir
*******************************************************************************/
	function _ir ( page )
	{
		document.location.href = page;
	}

/************************* _ir **********************************/
/*
Redirecciona la pagina actual a la especifica
@param	page				Pagina a la que se quiere ir
*******************************************************************************/
	function ir ( page )
	{
		document.location.href = page;
	}

/************************* permiteInsercion **********************************/
/*
Comprueba si se sobrepasado el número "max" de caracteres de un objeto 
de formulario de tipo "text". Permite el borrado.
@param	object				Objecto text
@param	max					Número de caracteres máximo
@param	evt					Evento
*******************************************************************************/
function permiteInsercion ( object, max, evt )
{		
	if ( object.value.length < max)
		ret = true;
	else
	{
		//Ajustamos los que haya podido meter con Copy&Paste
		vTexto = object.value;
		object.value = vTexto.substring(0, max);
		
		
		evt = (evt) ? evt : event
		var key = (evt.which) ? evt.which : evt.keyCode;		

		if ( key == 8 || key == 46) { //Si es la tecla de borrado (Backspace, 8) o Suprimir (46)
			ret = true;
		} else {
			alert("*** Tamaño Máximo permitido: " + max + " caracteres ***");
			ret = false;
		}
	}	
	return ret;		
}

//////////////////////////////////////////////////////
//Fecha con el año con cuatro dígitos, y el mes y el día con uno o dos dígitos.
//Como separador admite "/" y "-"
//Y que sea una fecha sensata, claro: nada de 33s de diciembres; controla además
//la guasa de los años bisiestos y los 29s de febreros
//////////////////////////////////////////////////////
function _esFecha(ObjText)
{
	var BlnRet = false;
	var str_cadena = ObjText.value;
	var int_ano
	var patFecha = /^([0-9]{1,2})[ \/\-]([0-9]{1,2})[ \/\-]([0-9][0-9]([0-9][0-9]))$/
	if (str_cadena != '')
	{
		if (patFecha.exec(str_cadena))
		{
			tbl_resultado = patFecha.exec(str_cadena);
			int_ano = _comprobarFecha(tbl_resultado[1],tbl_resultado[2],tbl_resultado[3]);
			if (int_ano == 0)
			{
				BlnRet = false;
			}
			else
				BlnRet = true;
		}
		else
		{
			BlnRet = false;
		}
	}
 	return BlnRet;
}
//////////////////////////////////////////////////////
//Devuelve 0 si la fecha no es correcta; el año, si es correcta
//////////////////////////////////////////////////////
function _comprobarFecha(intDia, intMes, intAnio)
{
	arrDuraciones = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if(_esBisiesto(intAnio))
		arrDuraciones[1]=29;
	if ((intMes>12 || intMes<1) || (intDia>arrDuraciones[intMes-1] || intDia<1))
		return 0;
	else
		return intAnio;
}
//////////////////////////////////////////////////////
//Se le pasa un año y nos dice si el año es bisiesto o no
//////////////////////////////////////////////////////
function _esBisiesto(intAnio)
{
	return(intAnio%4==0 && (intAnio%100!=0 ||intAnio%400==0));
}

/************************* validaTeclaNumero **********************************/
/*
Funcion que inhabilita la pulsación de tecla cuyo valor no sea un dígito o
un tabulador

@param	evt				Recoge el evento producido para comprobar la tecla pulsada
@return boolean			Valores:
							- TRUE si es digito o tabulador
							- FALSE si es lo contrario
*******************************************************************************/
function _validaTeclaNumero(evt)
{
	var BlnRet = false;
	evt = (evt) ? evt : event
	var key = (evt.which) ? evt.which : evt.keyCode;

	if ((key > 47 && key < 58) || key == 8 || key == 9)
		BlnRet = true;
	else
		BlnRet = false;

	return BlnRet;
}

/************************* _validaTeclaFecha **********************************/
/*
Funcion que inhabilita la pulsación de tecla cuyo valor no sea un dígito,
un tabulador o un caracter separador de fecha "/"

@param	evt				Recoge el evento producido para comprobar la tecla pulsada
@return boolean			Valores:
							- TRUE si es digito o tabulador
							- FALSE si es lo contrario
*******************************************************************************/
function _validaTeclaFecha(evt)
{
	var BlnRet = false;
	evt = (evt) ? evt : event
	var key = (evt.which) ? evt.which : evt.keyCode;

	if ((key >= 47 && key < 58) || key == 8 || key == 9)
		BlnRet = true;
	else
		BlnRet = false;

	return BlnRet;
}

/************************* esEmail **********************************/
/*
Función que comprueba que el valor introducido en el objeto de texto tiene
formato de correo electrónico
@param	ObjText				Objeto de tipo texto
@return boolean			Valores:
							- TRUE si es digito o tabulador
							- FALSE si es lo contrario
*******************************************************************************/
function _esEmail(texto)
{
  ret = true;
	var patEmail = /^[a-zA-Z0-9_]+[\.\-a-zA-Z0-9_]*@([\-a-zA-Z0-9_]+\.)+[a-zA-Z]{2,3}$/
	if (texto != "")
	{
		if (patEmail.exec(texto) == null)
      ret = false;
	}

  return ret;
}

