<!-- 
/********************************************************************
* 													  funCadenas.js	*
* Autor: CREAVISION Digital											*
* Fecha de creacion: 20/03/2011										*
* Funciones:	fncTrim()											*
*				fncPrepararCadena()									*
*				fncPrepararNumero()									*
*				fncPonerPuntos()									*
*				fncRecortarCadena()									*
*				fncPonerCeros()										*
*				fncFormatearNumCliente()							*
*				fncFormateaWeb()									*
*				fncRestringirCaracteres()							*
*				fncEuros()											*
* Comentarios: 														*
********************************************************************/



/********************************************************************
* Nombre: fncTrim()													*
* Autor: CREAVISION Digital											*
* Argumentos:	strCadena (Cadena) --> Cadena a tratar				*
* Resultado: Devuelve la cadena despues de su tratamiento			*
* Descripción: Elimina todos los espacios al principio y al final 	*
*				la cadena pasada									*
* Comentarios: 														*
*********************************************************************/
function fncTrim (strCadena) {
	//Elimina espacios al principio
	while (strCadena.toString().indexOf(" ")==0)
		strCadena = strCadena.toString().substring (1, strCadena.length)
		
	//Elimina espacios al final
	while (strCadena.toString().charAt (strCadena.toString().length-1) == " ")
		strCadena = strCadena.toString().substring (0, strCadena.toString().length-1);
	return strCadena;
}

/********************************************************************
* Nombre: fncPrepararCadena()										*
* Autor: CREAVISION Digital											*
* Argumentos:	intTipo (Entero) --> 1: de JS a HTML				*
*									 2: de JS a TextBox				*
*				strCadena (Cadena) --> Cadena a preparar			*
* Resultado: Devuelve la cadena despues de su tratamiento			*
* Descripción: Función que convierte caracteres de JS para que se	*
*				usen en otros formatos								*
* Comentarios: 														*
*********************************************************************/
var HTML = 1;
var CAJATEXTO = 2;
var FLASH = 3;
function fncPrepararCadena(intTipo,strCadena) {
	switch (intTipo) {
		//Convierte cadenas compatibles con javascript a HTML
		case 1:
			strCadena = strCadena.replace(/</gi,"&#60;");
			strCadena = strCadena.replace(/>/gi,"&#62;");
			strCadena = strCadena.replace(/\n/gi,"<br>");
			if (trim(strCadena) == "")
				strCadena = "&nbsp;";
			break;
			
		//Convierte cadenas compatibles con javascript en cadenas para textbox
		case 2:
			strCadena = strCadena.replace(/\'/gi,"&#39;");
			break;
			
		case 3:
			strCadena = strCadena.replace(" ","%20");
			strCadena = strCadena.replace("%","%25");
			strCadena = strCadena.replace("&","%26");
			strCadena = strCadena.replace("+","%2B");
			strCadena = strCadena.replace("ñ","%F1");
			strCadena = strCadena.replace("Ñ","%D1");
			strCadena = strCadena.replace("á","%E1");
			strCadena = strCadena.replace("é","%E9");
			strCadena = strCadena.replace("í","%ED");
			strCadena = strCadena.replace("ó","%F3");
			strCadena = strCadena.replace("ú","%FA");
			strCadena = strCadena.replace("Á","%C1");
			strCadena = strCadena.replace("É","%C9");
			strCadena = strCadena.replace("Í","%CD");
			strCadena = strCadena.replace("Ó","%D3");
			strCadena = strCadena.replace("Ú","%DA");
			break;			
	}
	return strCadena;
}


/********************************************************************
* Nombre: fncPrepararNumero()										*
* Autor: CREAVISION Digital											*
* Argumentos:	strNumero (Cadena) --> Cadena numerica a preparar	*
* Resultado: Devuelve la cadena numerica despues de su tratamiento	*
* Descripción: Prepara una cadena numérica sacada de la base de 	*
*				datos para tratarla en JS							*
* Comentarios: 														*
*********************************************************************/
function fncPrepararNumero(strNumero){
var strAux="";

	if (strNumero.indexOf(".")!=-1) {
		strAux = strNumero.substr(0,strNumero.indexOf("."));
		strAux +=",";
		strAux +=strNumero.substr(strNumero.indexOf(".")+1,strNumero.length);
	}	
	else
		strAux = strNumero;

	strAux= fncPonerPuntos(strAux);
		
	return strAux;
}


/********************************************************************
* Nombre: fncPonerPuntos()											*
* Autor: CREAVISION Digital											*
* Argumentos:	strNumero (Cadena) --> Cadena numerica a preparar	*
* Resultado: Devuelve la cadena numerica despues de su tratamiento	*
* Descripción: Pone puntos de miles a una cadena numerica			*
* Comentarios: 														*
*********************************************************************/
function fncPonerPuntos(strNumero) {
	var txtNumber = '' + strNumero;
	var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
	var arrNumber = txtNumber.split(',');
	arrNumber[0] += ',';
	do {
		arrNumber[0] = arrNumber[0].replace(rxSplit, '$1.$2');
	} while (rxSplit.test(arrNumber[0]));
	if (arrNumber.length > 1) {
		return arrNumber.join('');
	}
	else {
		return arrNumber[0].split(',')[0];
	}
}

/********************************************************************
* Nombre: fncPonerCeros()											*
* Autor: CREAVISION Digital											*
* Argumentos:	intNumero (Entero)									*
* Descripción: Devuelve el número con ceros delante					*
* Comentarios: Utilizado para fechas y horas						*
*********************************************************************/
function fncPonerCeros(intNumero) {
	if (intNumero < 10) intNumero = '0' + intNumero;
	return intNumero;
}

/********************************************************************
* Nombre: fncFormatearNumCliente()									*
* Autor: CREAVISION Digital											*
* Argumentos:	objFecha (objeto de formulario)						*
* Descripción: Devuelve el número con ceros delante	(4 caracteres)	*
* Comentarios: Utilizado para fechas y horas						*
*********************************************************************/
function fncFormatearNumCliente(objNumCliente) {
	strResultado = "";
	if (objNumCliente.value != "") {
		objNumCliente.value = fncTrim(objNumCliente.value);
		if (!fncEsNumero(objNumCliente.value)) {
			alert("El número de cliente no es correcto");
			objNumCliente.focus();
			objNumCliente.select();
			return false;
		}
		switch (objNumCliente.value.length) {
			case 1: strResultado = "000" + objNumCliente.value;
			break;
		
			case 2: strResultado = "00" + objNumCliente.value;
			break;
	
			case 3: strResultado = "0" + objNumCliente.value;
			break;
	
			case 4: strResultado = objNumCliente.value;
			break;
		}
	}
	objNumCliente.value = strResultado;
	return true;
}

/********************************************************************
* Nombre: fncFormateaWeb()											*
* Autor: CREAVISION Digital											*
* Argumentos: objCaja												*
* Resultado: 														*
* Descripción: Formatea la dirección web                          	*
* Comentarios: 														*
*********************************************************************/
function fncFormateaWeb(objCaja) {
	if (fncTrim(objCaja.value) != "") {
		if (fncTrim(objCaja.value).substring(0,7) != "http://") {
			objCaja.value = "http://" + fncTrim(objCaja.value);
		}
	}
}


/********************************************************************
* Nombre: fncRestringirCaracteres()									*
* Autor: CREAVISION Digital											*
* Argumentos: objEvento,strTipoPermitido							*
* Resultado: 														*
* Descripción: 									                  	*
********************************************************************/
function fncRestringirCaracteres(objEvento,strTipoPermitido) {
  // Variables que definen los caracteres permitidos
  var strNumeros = "0123456789.-";
  var strCaracteres = " abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
  var strAlfanumericos = " abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789";
  var strFiles = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
  var strTags = " áéíóúabcdefghijklmnñopqrstuvwxyzÁÉÍÓÚABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789";
  var teclas_especiales = [];
  // 8 = BackSpace, 46 = Supr, 37 = flecha izquierda, 39 = flecha derecha
 
  // Seleccionar los caracteres a partir del parámetro de la función
  switch(strTipoPermitido) {
    case 'num':
      strCaracteresPermitidos = strNumeros;
      break;
    case 'car':
      strCaracteresPermitidos = strCaracteres;
      break;
    case 'an':
      strCaracteresPermitidos = strAlfanumericos;
      break;
    case 'files':
      strCaracteresPermitidos = strFiles;
      break;
    case 'tags':
      strCaracteresPermitidos = strTags;
      break;
  }
   
  // Obtener la tecla pulsada 
  var evento = objEvento || window.event;
  var codigoCaracter = evento.charCode || evento.keyCode;
  var caracter = String.fromCharCode(codigoCaracter);

  // Comprobar si la tecla pulsada es alguna de las teclas especiales
  // (teclas de borrado y flechas horizontales)
  var tecla_especial = false;
  for(var i in teclas_especiales) {
    if(codigoCaracter == teclas_especiales[i]) {
      tecla_especial = true;
      break;
    }
  }
 
  // Comprobar si la tecla pulsada se encuentra en los caracteres permitidos
  // o si es una tecla especial
  return strCaracteresPermitidos.indexOf(caracter) != -1 || tecla_especial;
}


/********************************************************************
* Nombre: fncEuros()												*
* Autor: CREAVISION Digital											*
* Argumentos:	decNumero (Decimal)									*
* Descripción: Devuelve el número formateado en euros, forzandolo	*
* 			   y redondeandolo a 2 decimales						*
********************************************************************/
function fncEuros(decNumero) {
	strEuros = decNumero.toFixed(2) + " €";
	return strEuros;
}

-->
