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



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();
}

/**** 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();
}


/************************* 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;
	
	// (key > 47 && key < 58) --> Teclas Números
	// key == 8	--> Tecla Backspace
	// key == 9 -->
	// (key > 36 && key < 41)	--> Teclas Cursores	
	if ((key > 47 && key < 58) || key == 8 ||  key == 9 || (key > 36 && key < 41) || key == 44)
		BlnRet = true;
	else 
		BlnRet = false;
	return BlnRet;
}

/************************* validaTeclaDecimal **********************************/
/*
Funcion que inhabilita la pulsación de tecla cuyo que no sea una
tecla autorizada al añadir un número decimal

@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 validaTeclaDecimal(evt)
{
	var BlnRet = false;
	evt = (evt) ? evt : event
	var key = (evt.which) ? evt.which : evt.keyCode;
	
	// Teclas Numero
	// key == 44 --> Tecla Coma
	if (validaTeclaNumero(evt) || key == 44)
		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;
}
/************************* 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 **********************************/
/*
Cmprueba 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
	{
		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 {
			ret = false;
		}
	}	
	return ret;		
}

// Removes leading whitespaces
function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}


function LTrimChar(cadena, caracter){
	encontrado = false;
	i=0;
	while (i<cadena.length && !encontrado){
		encontrado = cadena.charAt(i) != caracter;
		i++;
	}
	return cadena.substring(i-1, cadena.length);
}

function RTrimChar(cadena, caracter){
	encontrado = false;
	i=cadena.length-1;
	while (i>=0 && !encontrado){
		encontrado = cadena.charAt(i) != caracter;
		i--;
	}
	return cadena.substring(0, i+2);
}

function replaceAll(cadena, oldCaracter, newCaracter){
	vRes = "";
	vArray = cadena.split(oldCaracter);	
	for (i=0; i<vArray.length; i++){
		vRes += vArray[i] + newCaracter;
	}
	return vRes;
}

/************************* formateaMillares **********************************/
/*
Función que formatea un campo de entrada a millares
@param	idName					Id del campo
@param 	hasDecimales			Indica si lleva decimales o no
*******************************************************************************/
function formateaMillares(idName, hasDecimales){
	vCampo = document.getElementById(idName);
	vCadena = vCampo.value; 
	vRes = "";
	
	if (vCadena != "")
	{
		//Se obtiene la posición de la coma decimal
		vCadenaSinMillares = "";
		vPosComa = vCadena.lastIndexOf(",", vCadena.length);
		if (vPosComa > -1){
			vCadenaEntera = vCadena.substring(0, vPosComa);
			vCadenaFlotante = vCadena.substring(vPosComa+1, vCadena.length);
			vCadenaSinMillares = vCadenaEntera + vCadenaFlotante;
		} else {
			vCadenaEntera = vCadena;
			vCadenaFlotante = "00";	
		}
		//Se elimina los otros puntos y comas que existan
		vCadenaEntera = replaceAll(replaceAll(vCadenaEntera, ",", ""), ".", "");
		vCadenaFlotante = replaceAll(replaceAll(vCadenaFlotante, ",", ""), ".", "");
		
		//Se elimina los 0's a la izquierda
		vCadenaEntera = LTrimChar(vCadenaEntera, "0");
		
		//Se calcula los millares de la parte Entera
		vCadenaEnteraMillares = "";
		limSup = vCadenaEntera.length;
		for (i=vCadenaEntera.length-3; i>=0; i=i-3){		
			aux = vCadenaEntera.substring(i,limSup);
			limSup = i;
			if (vCadenaEnteraMillares != "")
				vCadenaEnteraMillares = aux + "." + vCadenaEnteraMillares;
			else
				vCadenaEnteraMillares = aux;		
		}
		if (limSup>0){
			aux = vCadenaEntera.substring(0,limSup);
			if (vCadenaEntera.length>3)
				vCadenaEnteraMillares = aux + "." + vCadenaEnteraMillares;		
			else 
				vCadenaEnteraMillares = aux;
		}
		else if (vCadenaEntera=="")
			vCadenaEnteraMillares = 0;

		
		if (hasDecimales)
			vRes = vCadenaEnteraMillares + "," + vCadenaFlotante;	
		else 
			vRes = vCadenaEnteraMillares;			
	}
	
	// Ajustamos el campo
	vCampo.value = vRes;	
}


/************************* quitaFormatoDNI **********************************/
/*
Quita el formato del DNI 
@param	idName					Id del campo
*******************************************************************************/
function quitaFormatoDNI(idName){
	vCampo = document.getElementById(idName);
	vCadena = vCampo.value; 
	
	vRes = replaceAll(vCadena, ".", "");
	
	// Ajustamos el campo
	vCampo.value = vRes;	
}

